FreeRTOS — многозадачная операционная система реального времени (ОСРВ) для встраиваемых систем. Портирована на 35 микропроцессорных архитектур . Распространяется под лицензией MIT с 2017 года[1]. До 2017 года распространялась под модифицированной лицензией GPL с исключением, позволяющим разработчику присвоить модифицированный код операционной системы.
FreeRTOS | |
---|---|
Разработчик | Richard Barry & FreeRTOS Team |
Семейство ОС | ОСРВ |
Последняя версия | 202212.00 |
Поддерживаемые платформы | ARM (ARM7, ARM9, Cortex-M0, Cortex-M3, Cortex-M4, Cortex-A), Atmel AVR, AVR32, HCS12, MicroBlaze, Cortus (APS1, APS3, APS3R, APS5, FPF3, FPS6, FPS8), MSP430, PIC, Renesas H8/S, SuperH, RX, x86, 8052, Coldfire, V850, 78K0R, Fujitsu MB91460 series, Fujitsu MB96340 series, Nios II, Cortex-R4, TMS570, RM4x |
Тип ядра | микроядро |
Лицензия | MIT |
Состояние | Актуальное |
Репозиторий исходного кода | github.com/FreeRTOS/Free… |
Веб-сайт | freertos.org |
Медиафайлы на Викискладе |
Поддерживаемые процессоры
правитьFreeRTOS поддерживает процессоры следующих производителей[2]:
- Altera
- Atmel
- Cortus
- Cypress
- Energy Micro
- Freescale
- Fujitsu
- Infineon
- Luminary Micro
- Microchip
- Microsemi (бывший Actel)
- Multiclet
- NEC
- NXP
- Renesas Electronics
- Silicon Labs
- STMicroelectronics
- Texas Instruments
- Xilinx
- Intel (x86 real mode)
- Миландр
- Intel (x86 Windows Simulator)
- Intel (Nios II)
Описание
правитьFreeRTOS предназначена для работы на массовых микроконтроллерах, особенностями которых являются низкое быстродействие, малый объём ОЗУ и ПЗУ, отсутствие блока управления памятью и реализованных на аппаратном уровне механизмов поддержки многозадачности, например, средств быстрого переключения контекста[3].
Диспетчер системы очень прост и компактен (занимает, в зависимости от платформы и настроек ядра, 4-9 килобайт), однако поддерживает приоритеты процессов, вытесняющую и кооперативную многозадачность, семафоры и очереди. Начиная с версии 4, FreeRTOS позволяет использовать сопрограммы.
Версия 9.1.0 получила поддержку компилятора ARM Compiler 6.
Ядро системы умещается в несколько файлов.
Дистрибутив
правитьДистрибутив FreeRTOS может быть свободно скачан с сайта разработчика, бесплатно и без предоставления какой-либо информации (регистрации, заполнения каких-либо форм и т. п.). Документация в состав самого дистрибутива не входит, она доступна на сайте разработчика.
В состав дистрибутива входят подготовленные конфигурационные файлы и демонстрационные программы для каждой архитектуры, что позволяет очень быстро начать новую разработку. Для читаемости и лёгкости модификации код большей частью написан на Си, ассемблерные вставки используются в минимальном объёме в платформоспецифичных участках[4]. Сайт разработчика также содержит подробное руководство по использованию и портированию FreeRTOS.
Варианты
правитьAmazon FreeRTOS
правитьAmazon FreeRTOS отличается поставкой дополнительных библиотек, упрощающих организацию безопасного соединения устройств на базе микроконтроллеров с облачными сервисами AWS IoT Core или более мощными устройствами, работающими под управлением AWS Greengrass. В Amazon FreeRTOS обеспечена поддержка TLS 1.2, PKCS#11, шифрования данных, проверки целостности прошивки по цифровой подписи. Предложены средства для обновления прошивки в режиме OTA (over-the-air). Сетевой стек включает поддержку MQTT, TCP/IP и Wi-Fi. Для выбора и установки программных компонентов прошивки предлагается управляющий интерфейс Amazon FreeRTOS Console. Специфичные для Amazon FreeRTOS компоненты, как и ядро FreeRTOS, распространяются под лицензией MIT.
SafeRTOS, OpenRTOS
правитьПроект «SafeRTOS»[5] — доработанный, документированный, протестированный и прошедший сертификацию (в мае 2007) на соответствие стандарту безопасности IEC 61508[англ.] вариант FreeRTOS. Другой проприетарный коммерческий вариант системы, OpenRTOS — отличается от свободной версии, помимо лицензии и предоставляемых гарантий, лишь некоторыми деталями[4].
ESP-IDF FreeRTOS
правитьКомпания Espressif Systems для поддержки своих двухъядерных микроконтроллеров серии ESP (таких как ESP32 и ESP32-S3) предоставляет двухъядерную реализацию FreeRTOS с поддержкой SMP (симметричной многопроцессорной обработки). Свою версию FreeRTOS компания назвала ESP-IDF FreeRTOS.
Примечания
править- ↑ "Announcing FreeRTOS Kernel Version 10 | Amazon Web Services". Amazon Web Services (англ.). 2017-11-29. Архивировано 1 декабря 2017. Дата обращения: 30 ноября 2017.
- ↑ Полный список поддерживаемых архитектур Архивная копия от 15 июля 2007 на Wayback Machine (англ.)
- ↑ Курниц, 2011, № 2. Что такое ОС для МК?, с. 96.
- ↑ 1 2 Курниц, 2011, № 2. Обзор FreeRTOS, с. 98-99.
- ↑ "RTOS". High Integrity Systems. 2011-11-09. Архивировано 9 ноября 2016. Дата обращения: 4 января 2017.
Литература
править- Richard Barry. Using the FreeRTOS Real Time Kernel. — 2010. — 172 с. — ISBN 978-1-4461-6914-8.
- Christopher Svec. ch. 3. FreeRTOS // The Architecture of Open Source Applications, Volume II / Amy Brown, Greg Wilson. — ISBN 978-1-105-57181-7. (перевод на сайте MLDP)
- Ivan Cibrario Bertolotti, Gabriele Manduchi. Real-Time Embedded Systems: Open-Source Operating Systems Perspective. — CRC Press, 2012-01-27. — 536 с. — ISBN 978-1-4398-4154-9.
- Андрей Курниц. FreeRTOS — операционная система для микроконтроллеров // Компоненты и технологии (КиТ). — 2011. — № 2, 3, 4, 5, 6, 7, 8, 9, 10. — С. 96—100, 109-114, 96-102, 97-102, 98-104, 23-32, 132-140, 97-104, 93-100.
Ссылки
править- freertos.org — официальный сайт FreeRTOS
- FreeRTOS для STM32F4 — серия уроков по FreeRTOS для STM32F4 на mcu.by
- FreeRTOS на Хабрахабре
- FreeRTOS: практическое применение. — серия статей на русском языке