FreeRTOS — это ядро операционной системы реального времени [3] [4] [5] для встраиваемых устройств , которое было портировано на 40 микроконтроллерных платформ. Распространяется под лицензией MIT .
Ядро FreeRTOS было первоначально разработано Ричардом Барри около 2003 года, а затем разрабатывалось и поддерживалось компанией Барри, Real Time Engineers Ltd. В 2017 году фирма передала управление проектом FreeRTOS Amazon Web Services (AWS). Барри продолжает работать над FreeRTOS в составе команды AWS. [6] С переходом под контроль Amazon последующие выпуски проекта также перешли с лицензирования GPL версии 2 (со специальными исключениями для статического связывания с проприетарным кодом вне самого ядра FreeRTOS) на MIT. [7]
FreeRTOS разработана как небольшая и простая. Она в основном написана на языке программирования C , чтобы ее было легко переносить и поддерживать. Она также включает несколько функций языка ассемблера , где это необходимо, в основном в архитектурно-специфичных планировщиках.
FreeRTOS предоставляет методы для нескольких потоков или задач , мьютексов , семафоров и программных таймеров . Для приложений с низким энергопотреблением предусмотрен режим без тактов . Поддерживаются приоритеты потоков. Приложения FreeRTOS могут быть статически распределены, но объекты также могут быть динамически распределены с помощью пяти схем управления памятью (распределения):
ОСРВ обычно не имеют более продвинутых функций, которые есть в операционных системах вроде Linux и Microsoft Windows , таких как драйверы устройств , расширенное управление памятью и учетные записи пользователей. Акцент делается на компактности и скорости выполнения. FreeRTOS можно рассматривать как библиотеку потоков, а не как операционную систему, хотя интерфейс командной строки и абстракция ввода-вывода (I/O) в стиле POSIX доступны.
FreeRTOS реализует несколько потоков, заставляя хост-программу вызывать метод тика потока через регулярные короткие интервалы. Метод тика потока переключает задачи в зависимости от приоритета и схемы планирования по круговой схеме . Обычный интервал составляет от 1 до 10 миллисекунд ( от 1 ⁄ 1000 до 1 ⁄ 100 секунды) через прерывание от аппаратного таймера, но этот интервал часто изменяется в соответствии с конкретным приложением.
Дистрибутив программного обеспечения содержит готовые конфигурации и демонстрации для каждого порта и компилятора, что позволяет быстро разрабатывать приложения. На веб-сайте проекта размещены документация и руководства по RTOS, а также подробности проектирования RTOS.
Amazon предоставляет теперь устаревшее расширение FreeRTOS, это FreeRTOS с библиотеками для поддержки Интернета вещей (IoT), в частности для Amazon Web Services . Начиная с версии 10.0.0 в 2017 году, Amazon взял на себя управление кодом FreeRTOS, включая любые обновления исходного ядра. [9] [10] [11]
SAFERTOS была разработана как дополнительная версия FreeRTOS с общими функциями, но предназначенная для критически важной для безопасности реализации. FreeRTOS была подвергнута исследованию опасности и работоспособности (HAZOP), и были выявлены и устранены слабые стороны. Результат был пройден через полный жизненный цикл разработки IEC 61508 SIL 3, наивысший уровень для компонента, состоящего только из программного обеспечения.
SAFERTOS был разработан Wittenstein High Integrity Systems в партнерстве с Real Time Engineers Ltd, основным разработчиком [3] проекта FreeRTOS. [12] И SAFERTOS, и FreeRTOS используют один и тот же алгоритм планирования, имеют схожие интерфейсы прикладного программирования ( API ) и в остальном очень похожи, [13] но они были разработаны с разными целями. [14] SAFERTOS был разработан исключительно на языке C для соответствия требованиям сертификации по IEC61508. [15]
SAFERTOS может находиться исключительно в постоянной памяти (ПЗУ) микроконтроллера для соответствия стандартам. [16] При реализации в аппаратной памяти код SAFERTOS может использоваться только в его оригинальной сертифицированной конфигурации. Это означает, что сертификация системы не требует повторного тестирования части ядра проекта. [17] SAFERTOS включен в ПЗУ некоторых микроконтроллеров Stellaris [18] от Texas Instruments. Исходный код SAFERTOS не нужно приобретать отдельно. В этом сценарии использования заголовочный файл C используется для сопоставления функций API SAFERTOS с их расположением в постоянной памяти.
OPENRTOS — это коммерческая версия Amazon FreeRTOS, продаваемая Wittenstein High Integrity Systems. Этот продукт обеспечивает поддержку и позволяет компаниям использовать ядро и библиотеки Amazon FreeRTOS без лицензии a:FreeRTOS MIT. [19] [20]
Ядро не является ОСРВ, но это может сбивать с толку из-за неподходящего наименования, выбранного для некоторых популярных ядер, например, "freeRTOS".
Что такое FreeRTOS? … Ограничения по размеру и природа специализированного конечного приложения редко оправдывают использование полной реализации RTOS — или действительно делают использование полной реализации RTOS возможным. Поэтому FreeRTOS предоставляет только основные функции планирования
в реальном времени
, межзадачную связь, синхронизацию и примитивы синхронизации. Это означает, что его точнее описать как ядро реального времени или исполнительную систему реального времени. …