Встроенные ОС

Встроенные ОС

Встроенные операционные системы

Большинство современных микропроцессорных устройств содержит встроенное ПО, которое по сложности значительно превосходит ПО, используемое в более зрелых устройствах.

Возрастающая сложность требует применения более гибких механизмов управления аппаратными ресурсами, приближая процесс разработки встраиваемого ПО к разработке ПО для больших компьютеров. Эту задачу решают операционные системы реального времени (ОСРВ), позволяющие разработчику получить практически тот же инструментальный комфорт «большой» ОС, оставаясь при этом в пределах использования ограниченного ресурса процессора и встроенной в контроллер памяти.

Ключевые особенности ОСРВ

Типичные аппаратные требования ОСРВ: объём ОЗУ от одного килобайта и RISC-процессор, работающий на частоте от единиц мегагерц. В отличие от полноценных ОС, ОСРВ представляет собой исходный код или библиотеку, которая статически линкуется вместе с разрабатываемым ПО и образует монолитный образ прошивки. Такой подход существенно упрощает механизм изоляции пользовательского и системного кода (в ряде ОСРВ изоляция и вовсе отсутствует), а также оптимизирует размер прошивки, исключая из неё неиспользуемый код на этапе компиляции.

Второе важное свойство ОСРВ — это детерминизм, обусловленный вычислительной сложностью О(1) любых системных вызовов, то есть отсутствие зависимости времени, потраченного на обработку системного вызова от внутреннего состояния системы. Это свойство частично вытекает из способности ОСРВ работать на системах с минимумом ОЗУ и невысокой скоростью CPU.

Таким образом, любой алгоритм, реализованный поверх ОСРВ, будет выполняться в масштабе времени, представляющим собой линейную функцию от хода часов реального времени (конечно, при условии неизменности частоты тактирования процессора). Данное свойство позволяет реализовывать на базе ОСРВ системы, которые контролируют процессы в реальном времени: управление электрическими моторами, захват, обработка и передача сигналов, контроль тех. процессов и многое другое.

Более сложные ОС (например, такие как Linux или Windows) не обладают этим качеством, поэтому даже при наличии ОС задачи реального времени зачастую выполняются в ОСРВ на выделенном контроллере или процессорном ядре.

Помимо низкого уровня системных вызовов, обеспечивающих многозадачность и работу с основными аппаратными ресурсами (таймер, ОЗУ), большинство ОСРВ предоставляют также и более высокоуровневые сервисы, которые позволяют реализовывать графический интерфейс пользователя, работать с массой периферийных устройств, организовывать файловые системы, реализовывать различные сетевые протоколы (TCP/IP, PPPoE, FTP и т.п.) и многое другое.

 

 

Список ОСРВ

1. FreeRTOS

2. ThreadX

3. RTEMS

4. Linux

5. SYS/BIOS

6. PikeOS

1. FreeRTOS

Портируемая свободная (GPL) ОС реального времени для встраиваемых систем. Является одной из самых популярных встраиваемых ОС (занимает 13% рынка, по версии издания EE Times).

FreeRTOS поддерживает 33 аппаратных архитектуры и 18 тулчейнов. Инженеры Promwad также добавили в эту ОС поддержку архитектуры Power e200z0h, которая используется в микроконтроллерах семейства SPC56 фирмы STMicroelectronics, разработанных для применения в ответственных узлах автомобилей.

FreeRTOS предоставляет разработчику базовый набор сервисов, типичный для любой ОСРВ:

  • Планировщик с вытесняемой многозадачностью и динамической приоритезацией
  • Средства синхронизации (семафоры, критические секции) и передачи управления (очереди, события)
  • Работа с таймером.

Сообщество разработчиков FreeRTOS также предлагает богатый набор расширений, поставляемых как под свободными, так и под коммерческими лицензиями: TCP/IP-стек, графический трейсер, CLI, SSL/TLS-функции, HTTP-сервер

Для приложений, требующих сертификат о повышенной надёжности (IEC 61508, EN62304, FDA 510(k)), компания WITTENSTEIN поставляет ОСРВ SafeRTOS, которая представляет собой переработанную версию FreeRTOS с наследованием её API.

2. ThreadX

Одна из самых популярных коммерческих ОСРВ, поставляется компанией Express Logic под лицензией Royalty Free. Надёжность и предсказуемость ThreadX подтверждена 1,5 миллиардом устройств, которые работают под её управлением, а также наличием множества сертификатов безопасности.

ОСРВ ThreadX поддерживается большим количеством аппаратных архитектур, включая современные версии ARM-процессоров. Большая часть системных функций написана на ассемблере с учётом оптимизации под конкретную архитектуру, что обуславливает исключительную производительность и нетребовательность к ресурсам:

  • Размер прошивки начинается от 2 КБ, требуя до 500 байт ОЗУ
  • Время загрузки — 300 циклов CPU, время переключения контекста — менее 100 циклов

ThreadX подходит для разработки медтехники, аппаратуры военного назначения, автомобильной электроники, а также устройств для индустриальной автоматики.

Express Logic поставляет богатый набор средств разработки, которые существенно облегчают процесс отладки. Имеется встроенный трейсер и графический анализатор, работающий на стороне хоста. Для среды Eclipse существует плагин, позволяющий наблюдать в наглядном виде за текущим положением системы: номер активной задачи, заполненность стека, обратный стек вызова функций, процент использования системных ресурсов и т.п.

3. RTEMS

Одна из старейших ОСРВ, ныне распространяется под свободной GPL-лицензией. Ключевым курсом развития RTEMS является поддержка свободных средств разработки, стандартов на программный интерфейс (POSIX, muITRON) и стремление реализовать сервисы, доступные только в коммерческих ОСРВ.

Так, RTEMS содержит полноценный стек BSD TCP/IP, графический интерфейс на основе библиотек picoTk, NanoX, OpenGUI, MicroWindows, FLTK. Портированы многие библиотеки, популярные в других POSIX-совместимых ОС: zlib, tcl, ncurses, libavl.

Инженеры Promwad выбрали ОСРВ RTEMS для одного проекта, включающего разработку индустриального компьютера на базе SoC NXP QorIQ p1020, предназначенного для контроля оборудования электроподстанций. Для этого проекта была реализована следующая схема работы операционных систем компьютера:

  • Одно ядро p1020 исполняет RTEMS, на которой работают задачи реального времени
  • Другое ядро исполняет ОС Linux, которая реализует проприетарные коммуникационные протоколы и высокоуровневую бизнес-логику
  • Взаимодействие между двумя ОС осуществляется посредством стандартного интерфейса OpenMCAPI, для которого на стороне RTEMS был реализован соответствующий адаптер

4. Linux

Строго говоря, ОС Linux не подходит под определение ОСРВ, являясь скорее ОС общего назначения. Однако стремительный рост производительности аппаратных платформ, используемых для встраиваемых систем, сделал возможным использования Linux в тех приложениях, где раньше использовали ОСРВ.

Типичные системные требования ОС Linux:

  • RISC CPU >100 МГц
  • >16 Мбайт FLASH-памяти
  • >8 Мбайт ОЗУ

Используя Linux, разработчик прошивки получает возможность использования огромного количества свободно распространяемых библиотек и инструментов, работающих на десктопных и серверных версиях ОС Linux.

Кроме того, Linux-сообщество разработало массу ПО, предназначенного специально для встраиваемых систем: файловые системы для NAND-памяти, BSP с поддержкой разнообразных аппаратных платформ, дистрибутивы, позволяющие собирать образы корневой файловой системы размером единицы мегабайт.

На текущий момент ОС Linux для компании Promwad является самой часто используемой ОС. На ней разрабатываются мультимедийные проигрыватели, телевизионные приставки, сетевые маршрутизаторы, VoIP-оборудование. В приложениях, где требуется ОСРВ, инженеры Promwad отработали асимметричную конфигурацию мультиядерного процессора, в котором одно ядро задействовано под ОСРВ, другое — под Linux.

5. SYS/BIOS

SYS/BIOS является проприетарной ОС, которая, тем не менее, распространяется в исходных кодах без продажи лицензии.

SYS/BIOS — это разработка Texas Instruments, которая изначально предназначалась для работы на DSP-процессорах (она называлась DSP/BIOS, а потом была переименована в SYS/BIOS, чтобы подчеркнуть более общую направленность этой ОСРВ).

Последние версии SYS/BIOS способны работать не только на DSP, но также на широком спектре других процессоров и контроллеров компании TI: ARM Cortex-M3, MSP430, ARM9 и др.

SYS/BIOS является частью Linux SDK, который поставляется для видеопроцессоров Davinci. Связь между Linux, работающем на ARM-ядре и SYS/BIOS, работающем на DSP-ядре, осуществляется посредством стандартного программного интерфейса DSP/BIOS Link.

6. PikeOS

PikeOS была разработана компанией SYSGO AG специально для критически важных проектов, где тредуется максимальная надёжность и предсказуемость встроенного ПО.

Для достижения максимального уровня изоляции структурно независимых частей ПО в PikeOS применена концепция логического разбиения ресурсов (resourse partitioning), основанная на применении гипервизора. Гипервизор PikeOS представляет собой небольшую программную прослойку, которая виртуализирует доступную периферию и ресурсы процессора. Каждой партиции статически назначаются доступные аппаратные ресурсы. Таким образом, для программы, работающей в одной партиции, нет никакой возможности повлиять на работу программы в другой партиции.

PikeOS находит применение в авионике, машиностроении и автомобильной электронике.

 

Наши проекты по разработке встроенного ПО

 

Разработка встроенного ПО для POS-принтеров Инженерная команда Promwad реализовала полнофункциональное встроенное программное обеспечение POS на базе Embedded Linux с системой Buildroot.

Модуль Ambarella CV25 для потребительских камер Мы разработали модуль для быстрого прототипирования на базе процессора Ambarella CV25 для потребительских камер в спорте, дронах, wearable-устройствах и VR

Кастомизация интерфейса ТВ-приставки Мы разработали программное средство, которое позволяет с минимальными усилиями изменять внешний вид пользовательского интерфейса
Sport Club – Smart TV-приложение для Tizen Мы разработали Smart TV-приложение для Tizen, WebOS и Android TV с функицями live streaming, VOD и поддержкой голосового управления
Разработка приложения для Smart TV на Tizen/webOS Мы разработали приложение IPTV с функциями TimeShifting, EPG, PVR и паузы/перемотки для Smart TV. Демонстрируем опыт с Tizen/webOS
Разработка рации с MP3-плеером для водного спорта По запросу стартапа мы разработали цифровую рацию со встроенным MP3-плеером для активных видов спорта на воде (серфинга, кайтсерфинга, виндсерфинга)
Промышленные коммутаторы на 10GbE и 48 портов Мы разработали новую линейку из восьми промышленных Ethernet-коммутаторов 1Gb/10Gbps, работающих в температурном диапазоне от -20 до +70°C
Пользовательское ПО для WiFi-колонки Мы разработали ПО для беспроводной Wi-Fi колонки на основе последней версии ядра Linux и OpenWrt с поддержкой всего аппаратного обеспечения
Аппаратный фреймбуфер 4К на базе FPGA/ПЛИС Фреймбуфер на базе ПЛИС с возможностью подключения двух независимых мониторов. Устройство планируется использовать при построении железнодорожных диспетчерских
Спутниковый SDR-модем на базе Zynq Ultrascale+ Мы разработали программно-аппаратную платформу спутникового модема в форм-факторе 1U, разделив его на две платы: цифровую и аналоговую.
Блок для связи и навигации на ЖД: GPS + ГЛОНАСС Мы разработали универсальный коммуникационно-навигационный блок для связи и навигации в кабине машиниста поезда
Покупки из видео. ИИ-приложение Smart TV Мы разработали приложение для ТВ-приставок на базе Android и Java. Распознавание фото и видео реализовали на базе нейросети белорусского стартапа Oyper
Станция контроля воздуха для «умных городов» Мы разработали станцию контроля качества воздуха, которая отправляет данные на IoT-сервер, откуда она загружается в онлайн-карту
Нейронавигатор: навигационная система Мы разработали рабочий прототип медицинского навигатора с поддержкой 3D-изображений УЗИ / МРТ / КТ. Себестоимость — на 50% ниже мировых лидеров
Умный WiFi-роутер с фильтром рекламы Мы разработали опытные образцы умного абонентского роутера (Smart CPE) со встроенным сервисом контент-фильтрации и блокировки рекламы
Коммутаторы второго уровня Серия устройств под ключ — разработаны управляемые коммутаторы второго уровня на базе набора микросхем Realtek 83xx и Linux kernel
OpenWRT портирование Мы проанализировали и протестировали несколько вариантов аппаратной платформы на базе чипсетов Mediatek, Qualcomm, Realtek и выбрали оптимальное решение
Проектирование сетевого анализатора трафика BYPASS Мы создали прототипы анализатора сетевого трафика для реализации функции BYPASS

Глюкометр Irma: дизайн корпуса и производство Мы разработали и поставили на производство глюкометр – устройство для измерения концентрации глюкозы в капиллярной крови человека

TAO гаджет для фитнеса Мы модернизировали программное обеспечение TAO и дизайн печатной платы, чтобы продлить срок службы батареи устройства

tAKT синхронизатор времениМы разработали систему синхронизации времени на базе систем ГЛОНАСС/GPS и программной платформы Linux

S-Terra загрузочный носитель Мы спроектировали и подготовили к серийному производству USB-устройство для защиты удаленного доступа

OTDR оптический рефлектометрМы разработали компактное устройство для определения и локализации неисправностей в кабельных линиях

Глюкометр для смартфонов на Android и iOS Мы создали мобильный измеритель концентрации глюкозы в крови, который работает в паре cо смартфонами под управлением iOS или Android

Контроллер тягового электроприводаМы обновили контроллер тягового электропривода, который был разработан для вагонов производства «Метровагонмаш» более 10 лет назад

MPEG2/4 встроенное ПОМы доработали встроенное программное обеспечение для многоканального транскодирования транспортных потоков MPEG2-TS в потоки формата H264

Bluetooth-устройство + приложение Parrot Разработали устройство для сбора данных с нескольких Bluetooth-датчиков и передачи данных на сервер

OpenWRT для RealtekМы разработали специализированный дистрибутив Embedded Linux для роутеров, маршрутизаторов и других сетевых устройств

VoIP абонентское устройство Разработано абонентское устройство для предоставления услуг голосовой связи по протоколу IP в широкополосных сетях

IPTV + T/C гибридная ТВ-приставка Мы спроектировали референс-дизайн ТВ-приставки, который предназначен для платформенной разработки и вывода на рынок цифровых устройств

Locus ТВ-приставка DVB-TМы разработали цифровую ТВ-приставку (STB) с поддержкой формата DVB-T (MPEG-2/4), наземного цифрового вещания

USB-ключ защита доступа Мы разработали программно-аппаратную систему для обеспечения безопасной передачи данных при работе с небезопасным компьютером

Навигатор с компасом Разработан прототип компактного устройства для навигации, которое возвращает пользователя в точку старта

Навигатор GPS+ГЛОНАСС для авто Мы разработали навигационное устройство для авто с поддержкой ГЛОНАСС/GPS, мобильной связи в режиме hands-free и передачи данных

OBD-II бортовой самописец Мы разработали портативный автомобильный самописец для контроля и диагностики технического состояния («черный ящик» для авто)
Цифровая приставка IPTV для SmartLabs Самый крупносерийный проект! Мы разработали IPTV-приставку с ОТТ и PVR — выбор абонентов Ростелекома и МТС

AK1100 тонкий клиентМы разработали компьютер для сетей с клиент-серверной архитектурой, который переносит основные процессы на удаленный сервер

Бортовой мультимедийный компьютерМы спроектировали программно-аппаратную систему для мультимедиа, GPS-навигации, расчета времени в пути, управления кондиционером

IP-Plug ARM-мини-серверМы разработали первый в России коммерческий plug-компьютер — IP-Plug АК-Systems

5D-кино система для кинотеатраКоманда инженеров Promwad разработала аппаратно-программную систему 5D-кинотеатра

Контроллер HDMI-CEC для управления умным домом Спроектировали устройство для управления домашним кинотеатром, тюнером и другими элементами умного дома

JPEG2000 4-канальный регистраторМы разработали устройство видеорегистрации для оцифровки, хранения и выдачи по запросу аудио и видеопотоков от 4 аналоговых источников

5D-кино ПО для спецэффектов Команда инженеров Promwad разработала программу Cinema Control Panel для системы 5D-кинотеатра

Нужна разработка аппаратного обеспечения или трассировка печатных плат?

Расскажите о своей задаче. Мы ответим вам сегодня или на следующий рабочий день.