Po roce vývoje je k dispozici vydání RT-Thread 5.1, operačního systému reálného času (RTOS) pro zařízení internetu věcí. Systém se vyvíjí od roku 2006 komunitou čínských vývojářů a v současnosti je portován pro 154 platforem, čipů a mikrořadičů založených na architekturách x86, ARM, MIPS, C-SKY, Xtensa, ARC a RISC-V. Minimalistická verze RT-Thread (Nano) vyžaduje k provozu pouze 3 KB Flash a 1,2 KB RAM. Pro IoT zařízení s výrazně neomezenými zdroji je nabízena plně funkční verze, která podporuje správu balíčků, konfigurátory, síťový zásobník, balíčky s implementací grafického rozhraní, systémy hlasového ovládání, databázové systémy, síťové služby a motory pro vykonávání skriptů. Kód je napsán v jazyce C a je distribuuován pod licencí Apache 2.0.
Operační systém se skládá ze tří základních vrstev:
- Jádro zajišťující vykonávání úloh v reálném čase. Jádro poskytuje univerzální základní primitiva pokrývající oblasti jako je správa zámků a synchronizace dat, plánování úloh, správa vláken, zpracování signálů, fronty zpráv, správa časovačů, správa paměti. Specifické pro hardware vlastnosti jsou реализovány na úrovni libcpu a BSP, které zahrnují potřebné ovladače a kód pro podporu CPU.
- Komponenty a služby pracující nad jádrem a nabízející takové abstrakce jako virtuální souborový systém, systém zpracování výjimek, úložiště ve formátu klíč/hodnota, rozhraní příkazového řádku FinSH, síťový stoh (LwIP) a síťové frameworky, knihovny pro podporu zařízení, zvukový subsystém, bezdrátový stoh, komponenty pro podporu Wi-Fi, LoRa, Bluetooth, 2G/4G. Modulární architektura umožňuje připojovat komponenty a služby v závislosti na svých úlohách a dostupných hardwarových zdrojích.
- Programové balíčky. Obecně užitné softwarové komponenty a funkční knihovny se distribuují a instalují ve formě balíčků. V současnosti repozitář zahrnuje více než 450 balíčků, které nabízejí vše od grafických uživatelských rozhraní, multimediálních aplikací a síťových aplikací po systémy řízení robotů a zpracovatele strojového učení. V balíčcích jsou také dodávány enginy pro výkon programů v jazycích Lua, JerryScript, MicroPython, PikaScript a Rust (rtt_rust).

Vlastnosti platformy:
- Podpora architektur:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (podporovány mikrořadiče od výrobců jako 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.
- Rozšiřitelná modulární architektura, která umožňuje vytvoření prostředí vhodného pro systémy s omezenými zdroji (minimální požadavky — 3 KB Flash a 1,2 KB RAM).
- Podpora různých standardních rozhraní pro vývoj programů, jako jsou POSIX, CMSIS, C++ API. Samostatně se vyvíjí vrstva RTduino pro kompatibilitu s API a knihovnami projektu Arduino.
- Možnost rozšíření prostřednictvím systému balíčků a připojitelných komponent.
- Podpora vývoje aplikací pro vysoce výkonné zpracování informací.
- Flexibilní systém správy napájení, který umožňuje automaticky převést zařízení do režimu spánku a dynamicky řídit napětí a frekvenci v závislosti na zatížení.
- Podpora hardwarových prostředků pro šifrování a dešifrování, poskytování knihoven s různými kryptografickými algoritmy.
- Unifikované rozhraní pro přístup k periferním zařízením a dalšímu vybavení.
- Virtuální FS a dostupnost ovladačů pro takové FS, jako jsou FAT, UFFS, NFSv3, ROMFS a RAMFS.
- Stack protokolů pro TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M atd.
- Systém vzdáleného dodávání a instalace aktualizací, který podporuje šifrování a ověřování digitálním podpisem, obnovení přerušené instalace, zotavení po havárii, vrácení změn atd.
- Systém dynamicky načitovaných modulů jádra, který umožňuje samostatné sestavování a vývoj komponent jádra a jejich dynamické načítání v případě potřeby.
- Podpora různých třetích stran balíčků, jako jsou Yaffs2, SQLite, FreeModbus, Canopen atd.
- Možnost přímé kompilace BSP balíčku (Board Support Package) s komponenty pro podporu konkrétní hardwarové platformy a jeho nahrání na desku.
- Existence emulátoru (BSP qemu-vexpress-a9), který umožňuje vyvíjet aplikace bez použití skutečných desek.
- Podpora běžných kompilátorů a nástrojů pro vývoj, jako jsou GCC, MDK Keil a IAR.
- Vývoj vlastní integrované vývojové prostředí RT-Thread Studio IDE, které umožňuje vytvářet a ladit aplikace, nahrávat je na desky, spravovat nastavení. Pluginy pro vývoj programů pro RT-Thread jsou také k dispozici pro Eclipse a VS Code.
- Existence konzolového rozhraní Env, které zjednodušuje vytváření projektů a nastavení prostředí.
Mezi změnami v novém vydání:
- V RT-Smart, hybridním operačním systému založeném na RT-Thread, který odděluje aplikace od jádra, je ve výchozím nastavení zahrnuta podpora mechanismů epoll, eventfd, signalfd, timerfd a select. Byla implementována subsystém emulátoru terminálu. Přidána podpora zařízení DFZU2EG MPSoC a cv181x-riscv.
- V RTduino, vrstvě pro zajištění kompatibility s ekosystémem Arduino, byla přidána podpora desek raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark.
- Byly aktualizovány externí komponenty, jako ssh, sftp, weston a vim.
- Byla přidána podpora nových desek a čipů, jako HPMicro RISC-V, STM32 Nucleo, Adafruit Metro M4, Seeed Wio-Terminal, ST (stm32L431_tencentos, stm32h7s7-disco, stm32f407-lckfb-skystar, stm32h503-st-nucleo), Renesas (ek-ra8m1, ek-ra8d1, ra8d1-vision-board), AT32 (at32f402-start, at32f405-start), HT32 (ht32f52352, ht32f12366, AVR32 at32uc3a0256, at32uc3b0256), CVITEK (c906_little, cv18xx_risc-v), WCH (yd-ch32v307vct6), HC32 (ev_hc32f4a0_lqfp176, ev_hc32f460_lqfp100_v2), (ev_hc32f448_lqfp80, GD32 gd32407v-lckfb), NXP (frdm-mcxn947, frdm-mcxa153).
- Byl optimalizován výkon plánovačů úloh a CPU. Přidána vrstva pro abstrakci plánovače rt_sched.
- Byla optimalizována práce na vícejádrových systémech.
- Byla poskytnuta možnost připojení obslužných rutin k operacím alokace paměti malloc.
- Pro architektury ARM64 a RV64 byla implementována podpora zpětného trasování (backtrace) jádra.
- Pokračuje přechod na nový model ovladačů zařízení.
- V virtio ovladačích qemu-virt64-aarch64 a qemu-virt64-riscv byla přidána podpora SDL2.
- Byl přidán rámec pro vývoj ovladačů clk.
- V DFS byla přidána konfigurace exfat. Jádro bylo ve výchozím nastavení převedeno na používání FS dfsv2.
- Zlepšená podpora TTY terminálů.
- V systému vstupu/výstupu byla přidána podpora příznaků O_DIRECT a O_SYNC.
- V implementaci lehkých procesů lwP (Lightweight Process) byla funkce wp_new nahrazena lwp_create. Byla přidána funkce sys_setitimer.
- Do správce paměti MM byla přidána podpora rezervace paměti a implementována funkce rt_aspace_mremap_range.
- V Libcpu byla přidána podpora procesorů ARM Cortex-M85 a Cortex-R52.
Zdroj: opennet.ru
