Опубликован выпуск RT-Thread 5.3, операционной системы реального времени (RTOS) для устройств интернета-вещей. Система развивается с 2006 года сообществом китайских разработчиков и в настоящее время портирована для 155 плат, чипов и микроконтроллеров на базе архитектур x86, ARM, MIPS, С-SKY, Xtensa, ARC и RISC-V. Минималистичная сборка RT-Thread (Nano) требует для работы всего 3 КБ Flash и 1.2 КБ ОЗУ. Для IoT-устройств, сильно не ограниченных в ресурсах, предлагается полнофункциональная версия, поддерживающая управление пакетами, конфигураторы, сетевой стек, пакеты с реализацией графического интерфейса, системы голосового управления, СУБД, сетевых сервисов и движков для выполнения скриптов. Код написан на языке Си и распространяется под лицензией Apache 2.0.
System operacyjny składa się z trzech podstawowych warstw:
- Jądro, zapewniające wykonywanie zadań w czasie rzeczywistym. Jądro dostarcza uniwersalne podstawowe prymitywy obejmujące obszary takie jak zarządzanie blokadami i synchronizacją danych, planowanie zadań, zarządzanie wątkami, obsługa sygnałów, kolejki wiadomości, zarządzanie czasomierzem oraz pamięcią. Specyficzne dla sprzętu cechy są realizowane na poziomie libcpu i BSP, które zawierają niezbędne sterowniki i kod do wsparcia CPU.
- Komponenty i usługi działające na poziomie jądra, oferujące takie abstrakcje jak wirtualny system plików, system obsługi wyjątków, pamięć w formacie klucz/wartość, interfejs wiersza poleceń FinSH, stos sieciowy (LwIP) oraz ramy sieciowe, biblioteki do wsparcia urządzeń, subsystem dźwiękowy, stos bezprzewodowy, komponenty wspierające Wi-Fi, LoRa, Bluetooth, 2G/4G. Modułowa architektura pozwala na podłączanie komponentów i usług w zależności od swoich zadań oraz dostępnych zasobów sprzętowych.
- Pakiety programowe. Ogólne komponenty oprogramowania i biblioteki funkcji są dystrybuowane i instalowane w formie pakietów. Obecnie repozytorium zawiera ponad 450 pakietów, oferujących od graficznych interfejsów użytkownika, aplikacji multimedialnych i aplikacji sieciowych do systemów zarządzania robotami i narzędzi opartych na uczeniu maszynowym. W pakietach dostarczane są również silniki do organizacji wykonania programów w językach Lua, JerryScript, MicroPython, PikaScript i Rust (rtt_rust).

Cechy platformy:
- Wsparcie dla architektur:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (obsługiwane mikrokontrolery producentów takich jak ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevice, 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, HPMicro).
- ARC (SYNOPSYS)
- DSP (TI).
- C-Sky.
- x86.
- Rozszerzalna architektura modułowa, umożliwiająca utworzenie środowiska odpowiedniego dla systemów z ograniczonymi zasobami (minimalne wymagania — 3 KB Flash i 1,2 KB RAM).
- Wsparcie dla różnych standardowych interfejsów do programowania, takich jak POSIX, CMSIS, API C++. Osobno rozwijana jest warstwa RTduino dla zgodności z API i bibliotekami projektu Arduino.
- Możliwość rozszerzenia poprzez system pakietów i komponentów plug-in.
- Wsparcie dla tworzenia aplikacji do wysokowydajnego przetwarzania informacji.
- Elastyczny system zarządzania energią, pozwalający na automatyczne przeprowadzanie urządzenia w tryb uśpienia oraz dynamiczne zarządzanie napięciem i częstotliwością w zależności od obciążenia.
- Wsparcie dla sprzętowych rozwiązań do szyfrowania i deszyfrowania, oferujące biblioteki z różnymi algorytmami kryptograficznymi.
- Ujednolicony interfejs do dostępu do urządzeń peryferyjnych i dodatkowego sprzętu.
- Wirtualny system plików i dostępność sterowników dla takich systemów plików jak FAT, UFFS, NFSv3, ROMFS i RAMFS.
- Stos protokołów dla TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M itd.
- System zdalnej dostawy i instalacji aktualizacji, wspierający szyfrowanie i weryfikację podpisem cyfrowym, wznowienie przerwanej instalacji, przywracanie po awarii, cofanie zmian itp.
- System dynamicznie ładowanych modułów jądra, który umożliwia osobne zbieranie i opracowywanie komponentów jądra oraz ich dynamiczne ładowanie w razie potrzeby.
- Wsparcie dla różnych zewnętrznych pakietów, takich jak Yaffs2, SQLite, FreeModbus, Canopen itp.
- Możliwość bezpośredniej kompilacji pakietu BSP (Board Support Package) z komponentami wspierającymi określoną platformę sprzętową oraz jego załadunku na płytkę.
- Obecność emulatora (BSP qemu-vexpress-a9), który umożliwia rozwijanie aplikacji bez użycia rzeczywistych płytek.
- Wsparcie dla standardowych kompilatorów i narzędzi do rozwoju, takich jak GCC, MDK Keil i IAR.
- Rozwój własnego zintegrowanego środowiska programistycznego RT-Thread Studio IDE, umożliwiającego tworzenie i debugowanie aplikacji, ładowanie ich na płytki oraz zarządzanie ustawieniami. Wtyczki do rozwoju oprogramowania dla RT-Thread są również dostępne dla Eclipse i VS Code.
- Obecność konsolowego interfejsu Env, który upraszcza tworzenie projektów i konfigurację środowiska.
Wśród zmian w nowej wersji:
- Расширена поддержка разработки компонентов на языке Rust. Добавлены Rust-обвязки для потоков, мьютексов, семафоров, очередей сообщений, а также операций с памятью, временем и файлами. Реализованы компоненты для интеграции с SCons и Cargo. Обеспечено автоматическое определение целевых платформ ARM, AArch64 и RISC-V. Добавлены процедурные макросы для инициализации и регистрации команд.
- Для микроконтроллеров Cortex-M включена поддержка стандарта Open Firmware c описанием периферии через Device Tree.
- Добавлена поддержка VirtIO 1.2 с возможностью использования очередей пакетов, транспортов MMIO/PCI и синхронизации DMA. Добавлены VirtIO-драйверы 9P, crypto, RNG, SCMI и SCSI. Обновлены VirtIO-драйверы для сети, блочных устройств, консоли, устройств ввода и GPU.
- Добавлен фреймворк DVFS (Dynamic Voltage and Frequency Scaling) для динамического управления частотой CPU и устройств. Обеспечена интеграция с прошивкой ARM SCMI для управления энергопотреблением. Улучшено управление кулерами.
- Добавлена поддержка TEE-окружений (Trusted Execution Environment) и механизма обмена сообщениями RPMSG (Remote Processor Messaging).
- Реализована поддержка Unix-сокетов.
- Добавлена поддержка механизмов защиты беспроводных сетей WPA3, EA (Enterprise Authentication), WAPI, OWE и DPP.
- Добавлена поддержка протокола синхронизации времени PTP (Precision Time Protocol).
- Добавлен фреймворк Clock Time для работы со временем, поддерживающий высокоточные таймеры и синхронизацию времени по нескольким источникам. Новый фреймворк пришёл на смену ранее используемым компонентам ktime, cputime и hwtimer,
- Реализована файловая система 9PFS, применяемая для обмен файлами между хост-окружением и виртуальными машинами.
- В реализации легковесных процессов lwP (Lightweight Process) появилась поддержка архитектуры ARM и добавлена поддержка механизма vDSO (virtual dynamic shared object), позволяющего перенести обработчики из ядра в пространство пользователя и избежать переключений контекста.
- В ядре реализована поддержка 8- и 16-разрядных атомарных операций.
- Добавлена поддержка симметричной мультипроцессорности (SMP) для RISC-V процессоров серии XuanTie C/R и эмулятора QEMU virt64.
- Обновлён USB-стек CherryUSB 1.6.1.
- Добавлены новые DM-драйверы (Device Manager) для UFS, AHCI, NVMe, Ethernet, Intel HDA, джойстиков и сенсорных экранов.
Źródło: opennet.ru
