Встроенные системы управления и цифровой обработки сигналов специального назначения / Системы на встраиваемой Linux
Ключевым различием между операционной системой (ОС) Linux и ОС жесткого реального времени (ОС РВ) является детерминированное поведение во времени всех служб ОС РВ.
Для использования Linux во встроенных системах реального времени в ядро
внесены существенные изменения, обеспечивающие минимальные и предсказуемые
задержки, вносимые работой всех компонентов и служб ОС (KernelPreemption).
Полностью вытесняемое ядро Linux (PreemptRT) позволяет обеспечить
гарантированное время отклика для всех выполняемых задач и пригодно для
использования в системах реального времени.
Обычно традиционная ОС РВ собирает ядро и приложения в единый образ. ОС
Linux предлагает совершенно иную парадигму сборки. Поскольку в ОС Linux каждое
приложение имеет собственное адресное пространство, которое никак не связано с
адресным пространством ядра, используются необходимые файлы заголовков и
библиотека языка C, при этом любое приложение может быть собрано независимо от
ядра.
Основной недостаток процедуры раздельной сборки заключается в
необходимости интеграции отдельных компонентов системы в единый комплекс,
состав которого задается конфигурацией ядра, набором встраиваемых драйверов, аппаратной
конфигурацией целевой платформы и ревизией, выполняемой на ядре
пользовательского приложения.
В организации создан механизм сборки системы, позволяющий автоматически
создавать готовый образ ОС с учетом
конкретных настроек и удовлетворения всех зависимостей между используемыми
компонентами.
Найденное решение основывается на создании сервера сборки,
использующего для автоматической сборки образа ОС репозитории исходного кода
ядра и приложения, файлы конфигураций и аппаратное описание целевой платформы.
Использование данного решения позволяет следовать практике непрерывной
интеграции (ContinousIntegration), что обеспечивает на ранних стадиях
проектирования выявление конфликтов разрабатываемого программного обеспечения с
целевым оборудованием, проблем зависимостей между компонентами, и производить
регулярное тестирование разрабатываемых компонентов непосредственно на
конкретной аппаратной платформе.
При создании встроенных систем реального времени на предприятии освоен
маршрут создания прикладных систем реального времени, в том числе:
- создание набора инструментов для сборки ядра и приложений;
- разработка и перенос драйверов встраиваемых устройств;
- создание пакета поддержки аппаратных средств целевой платформы;
- сборка и настройка интерфейса системного загрузчика;
- сборка ядра ОС Linux;
- сборка приложений пользовательского пространства;
- сборка корневой файловой системы;
- использование рациональных интегрированных сред разработки;
- профилирование памяти;
- отладка ядра и приложения;
- профилирование приложения и ядра.