Bolo zverejnené vydanie RT-Thread 5.0, operačného systému v reálnom čase (RTOS) pre zariadenia internetu vecí. Systém je vyvíjaný od roku 2006 komunitou čínskych vývojárov a v súčasnosti je portovaný na takmer 200 dosiek, čipov a mikrokontrolérov založených na architektúrach x86, ARM, MIPS, C-SKY, Xtensa, ARC a RISC-V. Minimalistická zostava RT-Thread (Nano) vyžaduje na fungovanie iba 3 KB Flash a 1.2 KB RAM. Pre zariadenia internetu vecí, ktoré nie sú príliš obmedzené na zdroje, sa ponúka plnohodnotná verzia, ktorá podporuje správu balíkov, konfigurátory, sieťový zásobník, balíky s implementáciou grafického rozhrania, systémy hlasového ovládania, DBMS, sieťové služby a motory na spúšťanie skripty. Kód je napísaný v jazyku C a distribuovaný pod licenciou Apache 2.0.
Vlastnosti platformy:
- Podpora architektúry:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (podporované sú mikrokontroléry od výrobcov ako 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.
- Rozšíriteľná modulárna architektúra, ktorá umožňuje vytvárať prostredie vhodné pre systémy s obmedzenými zdrojmi (minimálne požiadavky - 3 KB Flash a 1.2 KB RAM).
- Podpora rôznych štandardných rozhraní pre vývoj programov, ako sú POSIX, CMSIS, C++ API. Vrstva RTduino sa vyvíja samostatne kvôli kompatibilite s API projektu Arduino a knižnicami.
- Možnosť rozšírenia prostredníctvom systému balíčkov a zásuvných komponentov.
- Podpora vývoja aplikácií pre vysokovýkonné spracovanie informácií.
- Flexibilný systém správy napájania, ktorý umožňuje automaticky uviesť zariadenie do režimu spánku a dynamicky ovládať napätie a frekvenciu v závislosti od záťaže.
- Hardvérová podpora pre šifrovanie a dešifrovanie, poskytovanie knižníc s rôznymi kryptografickými algoritmami.
- Jednotné rozhranie pre prístup k periférnym zariadeniam a prídavným zariadeniam.
- Virtuálny súborový systém a dostupnosť ovládačov pre súborové systémy ako FAT, UFFS, NFSv3, ROMFS a RAMFS.
- Zásobník protokolov pre TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M atď.
- Systém na vzdialené doručovanie a inštaláciu aktualizácií, ktorý podporuje šifrovanie a overovanie pomocou digitálneho podpisu, obnovenie prerušenej inštalácie, zotavenie po zlyhaní, vrátenie zmien atď.
- Systém dynamicky načítaných modulov jadra, ktorý vám umožňuje samostatne zostavovať a vyvíjať komponenty jadra a v prípade potreby ich dynamicky načítať.
- Podporuje rôzne balíky tretích strán, ako napríklad Yaffs2, SQLite, FreeModbus, Canopen atď.
- Schopnosť priamo skompilovať balík BSP (Board Support Package) s komponentmi na podporu špecifickej hardvérovej platformy a nahrať ho na dosku.
- Dostupnosť emulátora (BSP qemu-vexpress-a9), ktorý vám umožňuje vyvíjať aplikácie bez použitia skutočných dosiek.
- Podpora bežných kompilátorov a vývojových nástrojov ako GCC, MDK Keil a IAR.
- Vývoj nášho vlastného integrovaného vývojového prostredia RT-Thread Studio IDE, ktoré vám umožňuje vytvárať a ladiť aplikácie, načítať ich na dosky a spravovať nastavenia. Vývojové doplnky pre RT-Thread sú dostupné aj pre Eclipse a VS Code.
- Prítomnosť konzolového rozhrania Env, ktoré zjednodušuje vytváranie projektov a nastavovanie prostredia.
Operačný systém pozostáva z troch základných vrstiev:
- Jadro, ktoré umožňuje vykonávať úlohy v reálnom čase. Jadro poskytuje generické základné primitívy pokrývajúce oblasti, ako je správa zámkov a synchronizácia údajov, plánovanie úloh, správa vlákien, manipulácia so signálmi, radenie správ, správa časovačov a správa pamäte. Funkcie špecifické pre hardvér sú implementované na úrovniach libcpu a BSP, ktoré zahŕňajú potrebné ovládače a kód na podporu CPU.
- Komponenty a služby, ktoré bežia nad jadrom a ponúkajú abstrakcie, ako napríklad virtuálny súborový systém, systém spracovania výnimiek, úložisko kľúč/hodnota, rozhranie príkazového riadka FinSH, sieťový zásobník (LwIP) a sieťové rámce, knižnice na podporu zariadení, zvukový subsystém, bezdrôtový stoh, komponenty na podporu Wi-Fi, LoRa, Bluetooth, 2G/4G. Modulárna architektúra vám umožňuje prepojiť komponenty a služby v závislosti od vašich úloh a dostupných hardvérových prostriedkov.
- Softvérové balíky. Všeobecné softvérové komponenty a knižnice funkcií sú distribuované a inštalované vo forme balíkov. Úložisko v súčasnosti obsahuje viac ako 450 balíkov, ktoré ponúkajú všetko od grafických rozhraní, multimediálnych aplikácií a sieťových aplikácií až po riadiace systémy robotov a procesory založené na strojovom učení. Balíky tiež poskytujú nástroje na organizáciu vykonávania programov v jazykoch Lua, JerryScript, MicroPython, PikaScript a Rust (rtt_rust).
Medzi novinkami pridanými vo verzii 5.0 môžeme zaznamenať výrazné zlepšenie podpory pre viacjadrové a viacvláknové systémy (napríklad sieťový zásobník a súborové systémy sú prispôsobené na prácu vo viacvláknovom režime, plánovač je rozdelený do možností pre jednojadrové systémy a SMP). Pridaná implementácia TLS (Thread Local Storage). Vylepšená podpora pre čipy Cortex-A. Výrazne vylepšená podpora pre 64-bitové systémy (zásobník TCP/IP a súborové systémy sú overené pre 64-bitové systémy). Integrované sú komponenty správy flash pamäte. Súprava nástrojov na vytváranie ovládačov bola prepracovaná.
Zdroj: opennet.ru