Nakon godine razvoja, dostupna je verzija RT-Thread 5.1, operativnog sustava stvarnog vremena (RTOS) za uređaje interneta stvari. Sustav se razvija od 2006. godine od strane zajednice kineskih programera i trenutno je portiran na 154 platforme, čipova i mikrokontrolera temeljenih na arhitekturama x86, ARM, MIPS, C-SKY, Xtensa, ARC i RISC-V. Minimalistička verzija RT-Thread (Nano) zahtijeva samo 3 KB Flash memorije i 1,2 KB RAM-a za rad. Za IoT uređaje koji nisu značajno ograničeni u resursima, dostupna je verzija s punom funkcionalnošću koja podržava upravljanje paketima, konfiguratore, mrežni stek, pakete s implementacijom grafičkog sučelja, sustave glasovnog upravljanja, baze podataka, mrežne usluge i skriptne engine. Kod je napisan na jeziku C i distribuira se pod licencom Apache 2.0.
Operativni sustav se sastoji od tri osnovna sloja:
- Jezgro, koje osigurava izvršavanje zadataka u realnom vremenu. Jezgro pruža univerzalne osnovne primitive koji pokrivaju područja kao što su upravljanje zaključavanjima i sinkronizacijom podataka, planiranje zadataka, upravljanje nitima, obrada signala, redovi poruka, upravljanje tajmerima, upravljanje memorijom. Specifične karakteristike za hardver implementirane su na razini libcpu i BSP, koje uključuju potrebne drajvere i kod za podršku CPU-u.
- Komponente i usluge koje rade iznad jezgra i nude apstrakcije poput virtualnog datotečnog sustava, sustava za obradu iznimaka, pohranu u formatu ključ/vrijednost, sučelje komandne linije FinSH, mrežni stek (LwIP) i mrežne okvire, biblioteke za podršku uređajima, zvučnu podsustavu, bežični stek, komponente za podršku Wi-Fi, LoRa, Bluetooth, 2G/4G. Modularna arhitektura omogućuje povezivanje komponenti i usluga ovisno o vašim zadacima i dostupnim hardverskim resursima.
- Paketi softvera. Programske komponente opće namjene i biblioteke funkcija distribuiraju se i instaliraju u obliku paketa. Trenutno repozitorij uključuje više od 450 paketa koji nude sve, od grafičkih sučelja, multimedijskih aplikacija i mrežnih aplikacija do sustava upravljanja robotima i obrađivača temeljenih na strojnom učenju. U paketima se također isporučuju engine za izvršavanje programa na jezicima Lua, JerryScript, MicroPython, PikaScript i Rust (rtt_rust).

Značajke platforme:
- Podrška arhitekturama:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (podržavaju se mikrokontroleri proizvođača kao što su 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.
- Proširiva modularna arhitektura koja omogućuje stvaranje okruženja pogodnog za sustave s ograničenim resursima (minimalni zahtjevi — 3 KB Flash i 1.2 KB RAM).
- Podrška različitim standardnim sučeljima za razvoj programa, poput POSIX, CMSIS, C++ API. Odvojeno se razvija sloj RTduino za kompatibilnost s API-jem i bibliotekama projekta Arduino.
- Mogućnost proširenja putem sustava paketa i priključnih komponenti.
- Podrška razvoju aplikacija za visokoprocesnu obradu podataka.
- Fleksibilan sustav upravljanja napajanjem koji automatski prebacuje uređaj u stanje mirovanja i dinamički upravlja naponom i frekvencijom u zavisnosti od opterećenja.
- Podrška za hardverska rješenja za enkripciju i dekripciju, pružanje biblioteka s različitim kriptografskim algoritmima.
- Unified interface for accessing peripheral devices and additional equipment.
- Virtualni FS i prisutnost upravljačkih programa za sustave datoteka kao što su FAT, UFFS, NFSv3, ROMFS i RAMFS.
- Protokolni stog za TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M i slično.
- Sistem udaljene isporuke i instalacije ažuriranja, koji podržava enkripciju i verifikaciju putem digitalnog potpisa, nastavak prekinutih instalacija, oporavak od smetnji, vraćanje promena i slično.
- Sustav dinamički učitavanih jezgri modula koji omogućuje odvojeno prikupljanje i razvoj jezgrenih komponenti te njihovo dinamičko učitavanje kad je to potrebno.
- Podrška za razne vanjske pakete, poput Yaffs2, SQLite, FreeModbus, Canopen i slično.
- Mogućnost izravne kompilacije BSP paketa (Board Support Package) s komponentama za podršku određenoj hardverskoj platformi i njegovog učitavanja na ploču.
- Postojanje emulatore (BSP qemu-vexpress-a9) koji omogućuje razvoj aplikacija bez upotrebe stvarnih ploča.
- Podrška za standardne kompajlere i alate za razvoj, poput GCC, MDK Keil i IAR.
- Razvoj vlastitog integriranog okruženja za razvoj RT-Thread Studio IDE, koje omogućuje kreiranje i debagiranje aplikacija, njihovo učitavanje na ploče i upravljanje postavkama. Plugini za razvoj programa za RT-Thread također su dostupni za Eclipse i VS Code.
- Postojanje konzolnog sučelja Env, koje pojednostavljuje stvaranje projekata i postavljanje okruženja.
Među promjenama u novom izdanju:
- U RT-Smart, hibridnom operativnom sustavu temeljenom na RT-Threadu, u uključeno je po defaultu podrška za mehanizme epoll, eventfd, signalfd, timerfd i select. Implementiran je sustav emulacije Terminala. Dodana je podrška za uređaje DFZU2EG MPSoC i cv181x-riscv.
- U RTduino, sloju za osiguranje kompatibilnosti s ekosustavom Arduino, dodana je podrška za ploče raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark.
- Ažurirane su vanjske komponente, kao što su ssh, sftp, weston i vim.
- Dodana podrška za nove ploče i čipove, kao što su 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).
- Optimizirano je djelovanje planera zadataka i CPU-a. Dodana je sloj za apstrakciju planera rt_sched.
- Provedena je optimizacija rada na višejezgrenim sustavima.
- Omogućena je povezanost obrtnika za operacije alokacije memorije malloc.
- Za ARM64 i RV64 arhitekture implementirana je podrška za povratno praćenje (backtrace) jezgre.
- Nastavljen je prijelaz na novi model drajvera uređaja.
- U virtio-drajverima qemu-virt64-aarch64 i qemu-virt64-riscv dodana je podrška za SDL2.
- Dodan je okvir za razvoj drajvera clk.
- U DFS je dodana konfiguracija exfat. Zadan je korištenje FS dfsv2.
- Poboljšana podrška za TTY terminale.
- U sustav ulaza/izlaza dodana je podrška za O_DIRECT i O_SYNC oznake.
- U implementaciji lakih procesa lwP (Lightweight Process) funkcija wp_new zamijenjena je sa lwp_create. Dodana je funkcija sys_setitimer.
- U menadžer memorije MM dodana je podrška za rezervaciju memorije i implementirana funkcija rt_aspace_mremap_range.
- U Libcpu dodana je podrška za ARM Cortex-M85 i Cortex-R52 procesore.
Izvor: opennet.ru
