Опубликован выпуск 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.
Das Betriebssystem besteht aus drei grundlegenden Schichten:
- Der Kernel, der die Ausführung von Aufgaben in Echtzeit ermöglicht. Der Kernel bietet universelle grundlegende Primitiven, die Bereiche wie Lock-Management und Datensynchronisation, Task-Planung, Thread-Management, Signalverarbeitung, Nachrichtenwarteschlangen, Timer-Verwaltung und Speicherverwaltung abdecken. Hardwarespezifische Merkmale werden auf der Ebene libcpu und BSP realisiert, die die erforderlichen Treiber und Codes zur Unterstützung der CPU enthalten.
- Komponenten und Dienste, die über dem Kernel arbeiten und Abstraktionen wie ein virtuelles Dateisystem, ein Ausnahmeverarbeitungssystem, einen Schlüssel/Wert-Speicher, eine Kommandozeilenoberfläche FinSH, einen Netzwerkstack (LwIP) und Netzwerk-Frameworks, Bibliotheken zur Unterstützung von Geräten, ein Audiosubsystem, einen Wireless-Stack sowie Komponenten zur Unterstützung von Wi-Fi, LoRa, Bluetooth, 2G/4G anbieten. Die modulare Architektur ermöglicht das Anschließen von Komponenten und Diensten basierend auf den eigenen Anforderungen und vorhandenen Hardware-Ressourcen.
- Programmpakete. Software-Komponenten allgemeiner Art und Funktionsbibliotheken werden in Form von Paketen verteilt und installiert. Derzeit umfasst das Repository mehr als 450 Pakete, die von grafischen Benutzeroberflächen, Multimedia-Anwendungen und Netzwerkanwendungen bis hin zu Robotersteuerungssystemen und Machine-Learning-Handlern reichen. In den Paketen sind auch Engines zur Ausführung von Programmen in den Sprachen Lua, JerryScript, MicroPython, PikaScript und Rust (rtt_rust) enthalten.

Plattformmerkmale:
- Unterstützung der Architekturen:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (unterstützte Mikrocontroller von Herstellern wie 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, HPMicro).
- ARC (SYNOPSYS)
- DSP (TI).
- C-Sky.
- x86.
- Erweiterbare modulare Architektur, die es ermöglicht, eine Umgebung zu schaffen, die für Systeme mit begrenzten Ressourcen geeignet ist (Mindestanforderungen - 3 KB Flash und 1,2 KB RAM).
- Unterstützung verschiedener Standartschnittstellen zur Softwareentwicklung, wie POSIX, CMSIS, C++ API. Eine separate Schicht namens RTduino wird entwickelt, um die Kompatibilität mit APIs und Bibliotheken des Arduino-Projekts zu gewährleisten.
- Erweiterungsmöglichkeiten über ein Paket- und Plugin-System.
- Unterstützung der Anwendungsentwicklung für die Hochleistungsverarbeitung von Informationen.
- Ein flexibles Energiemanagementsystem, das es dem Gerät ermöglicht, automatisch in den Schlafmodus zu wechseln und die Spannung sowie die Frequenz je nach Last dynamisch zu steuern.
- Unterstützung für Hardwarelösungen zur Verschlüsselung und Entschlüsselung, Bereitstellung von Bibliotheken mit verschiedenen kryptografischen Algorithmen.
- Ein einheitliches Interface für den Zugriff auf Peripheriegeräte und zusätzliches Equipment.
- Virtuelles FS und die Verfügbarkeit von Treibern für Dateisysteme wie FAT, UFFS, NFSv3, ROMFS und RAMFS.
- Protokoll-Stack für TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M usw.
- Ein System zur Fernlieferung und Installation von Updates, das Verschlüsselung und digitale Signaturverifizierung unterstützt, die Wiederaufnahme unterbrochener Installationen, Wiederherstellung nach einem Fehler, Rollback von Änderungen usw.
- Ein System dynamisch ladbarer Kernelmodule, das die separate Zusammenstellung und Entwicklung von Kernelkomponenten ermöglicht und diese bei Bedarf dynamisch lädt.
- Unterstützung verschiedener Drittanbieter-Pakete, wie Yaffs2, SQLite, FreeModbus, Canopen usw.
- Möglichkeit zur direkten Kompilierung von BSP-Paketen (Board Support Package) mit Komponenten zur Unterstützung einer bestimmten Hardwareplattform und deren Laden auf das Board.
- Vorhandensein eines Emulators (BSP qemu-vexpress-a9), der die Entwicklung von Anwendungen ohne die Verwendung echter Boards ermöglicht.
- Unterstützung gängiger Compiler und Entwicklungswerkzeuge, wie GCC, MDK Keil und IAR.
- Entwicklung einer eigenen integrierten Entwicklungsumgebung RT-Thread Studio IDE, die das Erstellen und Debuggen von Anwendungen, das Laden auf Boards und die Verwaltung von Einstellungen ermöglicht. Plugins zur Entwicklung von Programmen für RT-Thread sind auch für Eclipse und VS Code verfügbar.
- Vorhandensein einer Konsolenoberfläche Env, die das Erstellen von Projekten und die Konfiguration der Umgebung vereinfacht.
Zu den Änderungen in der neuen Version gehören:
- Расширена поддержка разработки компонентов на языке 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, джойстиков и сенсорных экранов.
Quelle: opennet.ru
