A fost lansată versiunea RT-Thread 5.0, un sistem de operare în timp real (RTOS) pentru dispozitivele IoT. Sistemul a fost dezvoltat din 2006 de o comunitate de dezvoltatori chinezi și este acum portat pe aproape 200 de platforme, cipuri și microcontrolere bazate pe arhitecturi x86, ARM, MIPS, C-SKY, Xtensa, ARC și RISC-V. Versiunea minimalistă a RT-Thread (Nano) necesită doar 3 KB de Flash și 1,2 KB de RAM pentru a funcționa. Pentru dispozitivele IoT care nu sunt foarte restricționate în resurse, este disponibilă o versiune completă, care suportă managementul pachetelor, configuratoare, stiva de rețea, pachete cu implementări pentru interfețe grafice, sisteme de control vocal, baze de date, servicii de rețea și motoare pentru execuția scripturilor. Codul este scris în limbajul C și este distribuit sub licența Apache 2.0.
Caracteristicile platformei:
- Suport pentru arhitecturi:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (suportate de microcontrolere de la producători precum 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).
- ARC (SYNOPSYS)
- DSP (TI).
- C-Sky.
- x86.
- Arhitectură modulară extensibilă, care permite crearea unui mediu adecvat pentru sisteme cu resurse limitate (cerințe minime — 3 KB Flash și 1.2 KB RAM).
- Suport pentru diverse interfețe standard pentru dezvoltarea de programe, cum ar fi POSIX, CMSIS, API C++. Se dezvoltă separat un strat RTduino pentru compatibilitate cu API-urile și bibliotecile proiectului Arduino.
- Posibilitatea de extindere prin intermediul sistemului de pachete și componente conectabile.
- Suport pentru dezvoltarea aplicațiilor pentru procesarea informațiilor de înaltă performanță.
- Un sistem flexibil de gestionare a energiei, care permite trecerea automată a dispozitivului în modul de somn și gestionarea dinamică a tensiunii și frecvenței în funcție de sarcină.
- Suport pentru hardware destinat criptării și decriptării, furnizând biblioteci cu diverse algoritmi criptografici.
- Interfață unificată pentru accesul la dispozitivele periferice și echipamentele suplimentare.
- FS virtual și disponibilitatea driverelor pentru FS, cum ar fi FAT, UFFS, NFSv3, ROMFS și RAMFS.
- Stivă de protocoale pentru TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M etc.
- Sistem de livrare și instalare la distanță a actualizărilor, care susține criptarea și verificarea semnăturilor digitale, reluarea instalării întrerupte, recuperarea după probleme, revenirea la modificări etc.
- Sistemul de module dinamice ale nucleului, care permite construirea și dezvoltarea separată a componentelor nucleului, și încărcarea lor dinamică atunci când este necesar.
- Suport pentru diverse pachete de terță parte, cum ar fi Yaffs2, SQLite, FreeModbus, Canopen etc.
- Capacitatea de a compila direct un pachet BSP (Board Support Package) cu componente pentru suportul unei anumite platforme hardware și încărcarea acestuia pe placă.
- Dispunerea unui emulator (BSP qemu-vexpress-a9), care permite dezvoltarea aplicațiilor fără utilizarea de plăci reale.
- Suport pentru compilatoare și instrumente de dezvoltare standard, cum ar fi GCC, MDK Keil și IAR.
- Dezvoltarea propriei medii integrate de dezvoltare RT-Thread Studio IDE, care permite crearea și depanarea aplicațiilor, încărcarea acestora pe plăci, gestionarea configurațiilor. Plugin-uri pentru dezvoltarea aplicațiilor RT-Thread sunt de asemenea disponibile pentru Eclipse și VS Code.

- Dispunerea unei interfețe de consolă Env, care simplifică crearea de proiecte și configurarea mediului.

Sistemul de operare este format din trei straturi de bază:
- Nucleul, care asigură executarea sarcinilor în timp real. Nucleul oferă primitive de bază universale, acoperind domenii precum gestionarea blocărilor și sincronizarea datelor, planificarea sarcinilor, gestionarea firului, prelucrarea semnalelor, cozi de mesaje, gestionarea temporizatorului, gestionarea memoriei. Caracteristicile specifice hardware-ului sunt implementate la nivelul libcpu și BSP, care includ driverele necesare și codul pentru suportul CPU.
- Componentele și serviciile care funcționează deasupra nucleului și oferă astfel de abstracții precum sistemul virtual de fișiere, sistemul de gestionare a excepțiilor, stocarea în format cheie/valoare, interfața de linie de comandă FinSH, stiva de rețea (LwIP) și cadrele de rețea, biblioteci pentru suportul dispozitivelor, subsistemul audio, stiva wireless, componente pentru suport Wi-Fi, LoRa, Bluetooth, 2G/4G. Arhitectura modulară permite conectarea componentelor și serviciilor în funcție de sarcinile și resursele hardware disponibile.
- Pachete de programe. Componente de software generice și biblioteci de funcții sunt distribuite și instalate sub formă de pachete. În prezent, depozitul include peste 450 de pachete, oferind de la interfețe grafice, aplicații multimedia și aplicații de rețea la sisteme de control al roboților și manipulatoare bazate pe învățare automată. Pachetele vin de asemenea echipate cu motoare pentru execuția programelor în limbaje precum Lua, JerryScript, MicroPython, PikaScript și Rust (rtt_rust).

Printre noile funcționalități adăugate în versiunea 5.0 se numără îmbunătățirea semnificativă a suportului pentru sisteme multi-core și multi-thread (exemplu: stiva de rețea și sistemele de fișiere au fost adaptate pentru a funcționa în modul multi-thread, iar planificatorul a fost împărțit în variante pentru sisteme single-core și SMP). A fost adăugat suport pentru TLS (Thread Local Storage). Suportul pentru cipurile Cortex-A a fost îmbunătățit semnificativ. Suportul pentru sistemele de 64 de biți a fost întărit (stiva TCP/IP și sistemele de fișiere sunt verificate pentru sisteme de 64 de biți). Componenta de management al memoriei Flash a fost integrată. A fost revizuit instrumentarul pentru crearea driverelor.
Sursa: opennet.ro


