ОСРВ FX-RTOS

FX-RTOS

FX-RTOS - семейство операционных систем реального времени для встроенных систем. Ключевым отличием FX-RTOS от конкурирующих продуктов является применение механизма внедрения зависимостей для конфигурирования ядра ОС. При этом подходе ядро перестает быть единым неделимым компонентом, а составляется из более мелких частей, поэтому состав и возможности ОС могут изменяться в широких пределах. Ниже представлены предопределенные конфигурации для типичных сценариев применения.

  • FX-RTOS Nanokernel
    Представляет собой статическую библиотеку для использования совместно с микроконтроллерами. Использует одно адресное пространство, не используется разделение режимов процессора (ядро и приложение выполняются в одном режиме). Максимальная компактность и скорость работы.
  • FX-RTOS Secure Nanokernel
    Многие микроконтроллеры, несмотря на ограниченные ресурсы, нуждаются в повышенном уровне безопасности. Поскольку реализация полноценных изолированных процессов для таких систем избыточна, FX-RTOS использует подход с одним процессом: одно адресное пространство, но выполнение ядра и приложения происходит в kernel mode и user mode соответственно. Привилегированная часть приложения работает в режиме ядра и его скорость реакции близка к скорости работы системы без разделения режимов. Непривилегированное приложение использует механизм системных вызовов для обращения к функциям ОС.
  • FX-RTOS Microkernel
    Флагман семейства операционных систем Eremex. Предназначена для использования совместно с процессорами имеющими механизмы защиты памяти MPU/MMU. ОС построена с использованием классической микроядерной архитектуры. Поддерживаются изолированные процессы и межпроцессное взаимодействие на основе синхронного обмена сообщениями.

  • Масштабируемость
    Архитектура FX-RTOS построена на основе использования независимых компонентов и внедрения зависимостей. Это позволяет получить не просто настраиваемые параметры ядра, как у большинства других ОСРВ, но и реализовать концепцию конфигурируемой архитектуры с целью идеального соответствия требованиям приложения. Например, для некоторых приложений необходимо обеспечить максимальную производительность или минимальный размер занимаемой памяти, для других - латентность и скорость реакции на события. Кроме того, этот подход позволяет объединить в рамках одного API устройства различных классов: FX-RTOS способна работать в системах начиная с 16-битных микроконтроллеров с всего 1Кб оперативной памяти, до многоядерных процессоров с устройством защиты памяти (MMU) и изоляцией процессов.
  • Переносимость
    Количество платформенно-зависимого кода в FX-RTOS сведено к минимуму, поэтому она не только поддерживает все популярные микроконтроллеры, но и может быть легко портирована на любую платформу, в том числе на специфические процессоры, реализованные на базе FPGA.
  • Детерминизм
    FX-RTOS изначально проектировалась как система жёсткого реального времени, поэтому время реакции на внешние события является абсолютным приоритетом и не зависит от количества системных объектов или нагрузки. Во всех вариантах конфигурации ядро является полностью вытесняемым.
  • Эффективность
    Модульная структура ОСРВ позволяет добиться эффективности использования ресурсов. В минимальных конфигурациях для использования с микроконтроллерами FX-RTOS занимает всего 2-4Кб ROM и менее 1Кб RAM.
  • Надежность
    В любой конфигурации ОСРВ уделяется особое внимание надёжности. Начиная от невозможности проигнорировать ошибки (вместо возврата кода ошибки из функций, вызывается функция, определенная пользователем), контроля целостности системных объектов во время работы, и заканчивая изоляцией потенциально ненадёжных компонентов прикладного ПО в отдельных процессах с использованием механизмов защиты памяти. В этом случае приложение разделяется на доверенную и недоверенную части; последняя не может нарушить работу доверенной части или ядра ОСРВ.
  • Поддержка всех популярных процессоров
    FX-RTOS поддерживает наиболее распространенные микроконтроллеры ARM Cortex-M0/M3/M4/M7, Microchip PIC32MX (MIPS32), Atmel AVR32, TI MSP430.
  • Поддержка всех популярных инструментов разработки
    Поддерживаются все основные средства разработки, начиная от свободных, таких как GNU GCC, и заканчивая проприетарными решениями Keil uVision или IAR Embedded Workbench.
  • Легкость использования
    Для использования совместно с микроконтроллерами, независимо от используемой конфигурации, ОС представляет собой один заголовочный файл и одну библиотеку для компоновки с приложением. Данный подход избавляет от необходимости настройки путей поиска заголовочных файлов и т.д. При необходимости, ОС может быть использована также в виде исходных текстов. ОСРВ не привязана к использованию определенной системы сборки и может быть легко адаптирована как для сборки в IDE, так и совместно с make, CMake и прочими инструментами.

В основе концепции FX-RTOS лежит принцип разделения ядра на независимые программные модули или компоненты, которые в дальнейшем статически связываются между собой с помощью механизма внедрения зависимостей, что позволяет подбирать наиболее подходящие для каждого применения компоненты.
Для реализации этого механизма применен FX-Manager - фреймворк внедрения зависимостей для С собственной разработки, который работает во время сборки и, таким образом, исключает накладные расходы. FX-Manager реализован в виде приложения .NET, которое принимает список папок, содержащих исходные тексты, а в качестве вывода отдает список путей к файлам исходных текстов, которые нужно скомпилировать для сборки заданной конфигурации. Для сборки файлов может использоваться любая система сборки.
Внедрение зависимостей позволяет добиться:

  • Слабой связности
    Возможна разработка модульных приложений, в которых компоненты являются слабо связанными между собой, что позволяет заменять компоненты, комбинировать их в различных конфигурациях, а также упрощает разработку и поддержку.
  • Повторного использования кода
    Поскольку компоненты слабо связаны, это позволяет использовать многие из них повторно в различных приложениях и продуктах, что особенно важно при разработке линейки продуктов. Все варианты FX-RTOS собираются из единой кодовой базы, для конфигурирования не используется условная компиляция, а функционал можно переносить между конфигурациями без изменения исходных текстов. Например, при необходимости, поддержка многоядерных процессоров может быть добавлена в варианты FX-RTOS для микроконтроллеров.
  • Универсальной платформы
    Код компонентов и код систем, который из этих компонентов собирается, хранится отдельно друг от друга, что упрощает использование репозитория и не требует создания дополнительных ветвей для разработки нового функционала.

Подробнее о механизме внедрения зависимостей в С можно прочитать в нашем блоге. Фреймворк опубликован под open-source лицензией (BSD) допускающей модификацию и свободное использование. Исходные тексты доступны на нашей странице GitHub.

Для знакомства с FX-RTOS доступны демо-версии, которые включают скомпилированную библиотеку и заголовочный файл ОС, демо-приложение (которое зависит от возможностей аппаратного обеспечения), а также сконфигурированный проект для использования с определенным инструментарием и оборудованием (например, тестовый проект для IAR embedded workbench и тестовой платы Keil MCB1700). В виде демо-версий доступны версии ОС, которые включают однопроцессорные конфигурации, а также версии с защитой памяти для микроконтроллеров, которые могут использоваться для разработки приложений с повышенной отказоустойчивостью и защитой от взлома.


Будьте в курсе новостей и спецпредложений

Авторизация
Чтобы продолжить покупку, пожалуйста, авторизируйтесь на сайте.
Забыли пароль?