Доступна операционная система реального времени RT-Thread 5.0

Опубликован выпуск RT-Thread 5.0, операционной системы реального времени (RTOS) для устройств интернета-вещей. Система развивается с 2006 года сообществом китайских разработчиков и в настоящее время портирована для почти 200 плат, чипов и микроконтроллеров на базе архитектур x86, ARM, MIPS, С-SKY, Xtensa, ARC и RISC-V. Минималистичная сборка RT-Thread (Nano) требует для работы всего 3 КБ Flash и 1.2 КБ ОЗУ. Для IoT-устройств, сильно не ограниченных в ресурсах, предлагается полнофункциональная версия, поддерживающая управление пакетами, конфигураторы, сетевой стек, пакеты с реализацией графического интерфейса, системы голосового управления, СУБД, сетевых сервисов и движков для выполнения скриптов. Код написан на языке Си и распространяется под лицензией Apache 2.0.

Особенности платформы:

  • Поддержка архитектур:
    • ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (поддерживаются микроконтроллеры таких производителей, как ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP).
    • ARM Cortex-R4.
    • ARM Cortex-A8/A9 (NXP).
    • ARM7 (Samsung).
    • ARM9 (Allwinner, Xilinx, GOKE).
    • ARM11 (Fullhan).
    • MIPS32 (Loongson, Ingenic).
    • RISC-V RV32E/RV32I[F]/RV64[D] (sifive, Canaan Kendryt, bouffalo_lab, Nuclei, T-Head).
    • ARC (SYNOPSYS)
    • DSP (TI).
    • C-Sky.
    • x86.
  • Расширяемая модульная архитектура, позволяющая сформировать окружение, подходящее для систем с ограниченными ресурсами (минимальные требования — 3 КБ Flash и 1.2 КБ ОЗУ).
  • Поддержка различных стандартных интерфейсов для разработки программ, таких как POSIX, CMSIS, C++ API. Отдельно развивается прослойка RTduino для совместимости с API и библиотеками проекта Arduino.
  • Возможность расширения через систему пакетов и подключаемых компонентов.
  • Поддержка разработки приложения для высокопроизводительной обработки информации.
  • Гибкая система управления питанием, позволяющая автоматически переводить устройство в режим сна и динамически управлять напряжением и частотой в зависимости от нагрузки.
  • Поддержка аппаратных средств для шифрования и расшифровки, предоставление библиотек с различными криптографическими алгоритмами.
  • Унифицированный интерфейс для доступа к периферийным устройствам и дополнительному оборудованию.
  • Виртуальная ФС и наличие драйверов для таких ФС, как FAT, UFFS, NFSv3, ROMFS и RAMFS.
  • Стек протоколов для TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M и т.п.
  • Система удалённой доставки и установки обновлений, поддерживающая шифрование и верификацию по цифровой подписи, возобновление прерванной установки, восстановление после сбоя, откат изменений и т.п.
  • Система динамически загружаемых модулей ядра, позволяющая отдельно собирать и разрабатывать компоненты ядра, и динамически загружать их при появлении необходимости.
  • Поддержка различных сторонних пакетов, например, Yaffs2, SQLite, FreeModbus, Canopen и т.п.
  • Возможность прямой компиляции BSP-пакета (Board Support Package) с компонентами для поддержки определённой аппаратной платформы, и его загрузки на плату.
  • Наличие эмулятора (BSP qemu-vexpress-a9), позволяющего разрабатывать приложения без использования реальных плат.
  • Поддержка типовых компиляторов и инструментов для разработки, таких как GCC, MDK Keil и IAR.
  • Развитие собственной интегрированной среды разработки RT-Thread Studio IDE, позволяющей создавать и отлаживать приложения, загружать их на платы, управлять настройками. Плагины для разработки программ для RT-Thread также доступны для Eclipse и VS Code.
    Доступна операционная система реального времени RT-Thread 5.0
  • Наличие консольного интерфейса Env, упрощающего создание проектов и настройку окружения.
    Доступна операционная система реального времени RT-Thread 5.0

Операционную систему образуют три базовых слоя:

  • Ядро, обеспечивающее выполнение задач в режиме реального времени. Ядро предоставляет универсальные базовые примитивы, охватывающие такие области, как управление блокировками и синхронизацией данных, планирование задач, управление потоками, обработка сигналов, очереди сообщений, управление таймером, управление памятью. Специфичные для аппаратного обеспечения особенности реализованы на уровне libcpu и BSP, которые включают необходимые драйверы и код для поддержки CPU.
  • Компоненты и сервисы, работающие поверх ядра и предлагающие такие абстракции как виртуальная файловая система, система обработки исключений, хранилище в формате ключ/значение, интерфейс командной строки FinSH, сетевой стек (LwIP) и сетевые фреймворки, библиотеки для поддержки устройств, звуковая подсистема, беспроводной стек, компоненты для поддержки Wi-Fi, LoRa, Bluetooth, 2G/4G. Модульная архитектура позволяет подключать компоненты и сервисы в зависимости от своих задач и имеющихся аппаратных ресурсов.
  • Пакеты программ. Программные компоненты общего назначения и библиотеки функций распространяются и устанавливаются в форме пакетов. В настоящее время репозиторий включает более 450 пакетов, предлагающих от графических интерфейсов, мультимедийных приложений и сетевых приложений до систем управления роботами и обработчиков на базе машинного обучения. В пакетах также поставляются движки для организации выполнения программ на языках Lua, JerryScript, MicroPython, PikaScript и Rust (rtt_rust).

Доступна операционная система реального времени RT-Thread 5.0

Из новых возможностей, добавленных в версии 5.0 можно отметить значительное улучшение поддержки многоядерных и многопоточных систем (например, для работы в многопоточном режиме адаптированы сетевой стек и файловые системы, планировщик разделён на варианты для одноядерных систем и SMP). Добавлена реализация TLS (Thread Local Storage). Улучшена поддержка чипов Cortex-A. Значительно улучшена поддержка 64-разрядных систем (стек TCP/IP и файловые системы верифицированы для 64-разрядных систем). Интегрированы компоненты управления Flash-памятью. Переработан инструментарий для создания драйверов.

Источник: opennet.ru