Открыть сервис

FreeRTOS

FreeRTOS — это операционная система реального времени (ОСРВ) с открытым исходным кодом, предназначенная для встраиваемых систем с ограниченными вычислительными ресурсами. Она разработана для обеспечения детерминированного поведения, многозадачности и управления аппаратными ресурсами микроконтроллеров и микропроцессоров. FreeRTOS поддерживает широкий спектр архитектур, включая ARM, AVR, PIC, RISC-V, x86 и другие, и распространяется под лицензией MIT, что позволяет использовать её как в некоммерческих, так и в коммерческих проектах без обязательной публикации исходного кода.

История

Создание и ранние годы

FreeRTOS была создана Ричардом Барри (Richard Barry) в 2003 году. Первоначально проект разрабатывался как простая и компактная ОСРВ для микроконтроллеров с ограниченной памятью. Основной целью было предоставить разработчикам встраиваемых систем бесплатную альтернативу коммерческим ОСРВ, таким как VxWorks или QNX. Первая стабильная версия вышла в 2004 году.

Развитие и переход под управление Amazon

В 2017 году компания Amazon Web Services (AWS) приобрела права на FreeRTOS и объявила о создании расширенной версии под названием Amazon FreeRTOS (позднее — FreeRTOS Kernel). Это расширение включало интеграцию с облачными сервисами AWS IoT, библиотеки для безопасного подключения к интернету и обновления прошивки по воздуху (OTA). Однако ядро (kernel) осталось открытым и доступным в исходном виде под лицензией MIT. В 2021 году Amazon передала управление проектом сообществу, сохранив за собой роль спонсора.

Текущее состояние

По состоянию на 2025 год FreeRTOS является одной из самых популярных ОСРВ для встраиваемых систем, с миллионами установок в устройствах интернета вещей (IoT), промышленных контроллерах, бытовой электронике и автомобильных системах. Проект поддерживает более 40 архитектур и активно развивается сообществом.

Архитектура и ядро

Микроядро

FreeRTOS построена на основе микроядра, которое выполняет только базовые функции управления задачами, синхронизации и таймерами. Всё остальное (драйверы, стек протоколов, файловые системы) реализуется как отдельные задачи или библиотеки. Это минимизирует размер ядра — типичная конфигурация занимает от 4 до 12 КБ флеш-памяти.

Планировщик задач

Планировщик FreeRTOS использует вытесняющую многозадачность с фиксированными приоритетами. Задачи (threads) имеют приоритеты от 0 (самый низкий) до конфигурируемого максимума (обычно 255). Планировщик выбирает для выполнения задачу с наивысшим приоритетом, готовую к запуску. Если несколько задач имеют одинаковый приоритет, используется циклический алгоритм (round-robin) с квантом времени.

Состояния задач

Каждая задача может находиться в одном из четырёх состояний:

  • Running — выполняется в данный момент.
  • Ready — готова к выполнению, ожидает процессор.
  • Blocked — ожидает события (таймер, семафор, очередь).
  • Suspended — приостановлена программно.

Синхронизация и взаимодействие

FreeRTOS предоставляет стандартные механизмы синхронизации:

  • Семафоры (бинарные и счётные) — для управления доступом к ресурсам.
  • Мьютексы — семафоры с поддержкой инверсии приоритетов.
  • Очереди — для передачи данных между задачами.
  • Группы событий — для ожидания комбинации флагов.

Таймеры

В ядро встроен программный таймер, который позволяет создавать периодические или одноразовые события с точностью до тика ОС. Таймеры выполняются в контексте специальной «демонической» задачи.

Компоненты и расширения

FreeRTOS Kernel

Базовый компонент — ядро, которое включает планировщик, управление памятью, таймеры и очереди. Оно распространяется в виде исходного кода на C и может быть скомпилировано для любой целевой платформы.

Дополнительные библиотеки

В рамках экосистемы FreeRTOS доступны:

Интеграция с облаком

Версия Amazon FreeRTOS включает библиотеки для подключения к AWS IoT Core, MQTT, HTTPS, а также механизмы безопасного хранения сертификатов и обновления прошивки.

Применение

Интернет вещей (IoT)

FreeRTOS широко используется в устройствах IoT благодаря малому потреблению памяти и поддержке беспроводных протоколов (Wi-Fi, Bluetooth, LoRa). Примеры: умные датчики, термостаты, шлюзы.

Промышленная автоматизация

В промышленных контроллерах и программируемых логических контроллерах (ПЛК) FreeRTOS обеспечивает детерминированное выполнение задач управления. Она применяется в системах сбора данных, мониторинга и управления двигателями.

Бытовая электроника

Многие микроконтроллеры в бытовой технике (стиральные машины, микроволновые печи, кофеварки) работают под управлением FreeRTOS. Она также используется в аудиоустройствах, носимой электронике и игровых контроллерах.

Автомобильная промышленность

В автомобилях FreeRTOS применяется в системах управления аккумуляторами (BMS), информационно-развлекательных системах и модулях телематики. Для соответствия стандартам ISO 26262 существует версия SafeRTOS, сертифицированная для функциональной безопасности.

Преимущества и недостатки

Преимущества

  • Открытый исходный код — бесплатное использование без роялти.
  • Малый размер — минимальная конфигурация занимает менее 5 КБ.
  • Переносимость — поддержка десятков архитектур и компиляторов.
  • Документированность — обширная документация и примеры.
  • Сообщество — активная поддержка и множество сторонних проектов.

Недостатки

  • Отсутствие защиты памяти — задачи выполняются в общем адресном пространстве, что может привести к сбоям при ошибках доступа.
  • Ограниченная поддержка SMP — FreeRTOS Kernel не поддерживает симметричную многопроцессорность (SMP) из коробки; существуют экспериментальные версии.
  • Сложность отладки — при большом количестве задач отладка может быть затруднена без специализированных инструментов.

Сравнение с другими ОСРВ

ПараметрFreeRTOSZephyrThreadX
ЛицензияMITApache 2.0Проприетарная (Eclipse)
Минимальный размер4–12 КБ8–20 КБ2–10 КБ
Поддержка SMPНетДаДа
Сертификация безопасностиSafeRTOS (отдельно)Да (IEC 61508)Да (IEC 61508)
ЭкосистемаAWS, Mbed, ArduinoGoogle, NordicMicrosoft, STM32

Интересные факты

  • FreeRTOS была портирована на более чем 40 архитектур, включая редкие, такие как Fujitsu FR-V и Renesas RL78.
  • Версия SafeRTOS прошла сертификацию по стандарту IEC 61508 для систем с уровнем полноты безопасности SIL 3.
  • В 2020 году FreeRTOS была включена в ядро Arduino, что сделало её доступной для миллионов любителей электроники.

Источники

  • Richard Barry, «Using the FreeRTOS Real Time Kernel», 2010.
  • Официальная документация FreeRTOS (freertos.org).
  • Amazon Web Services, «FreeRTOS Kernel Quick Start Guide», 2023.
  • Стандарт IEC 61508, «Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →