Доступна операційна система реального часу 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, що дозволяє створювати та налагоджувати програми, завантажувати їх на плати, керувати налаштуваннями. p align="justify"> Плагіни для розробки програм для 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

Додати коментар або відгук