Dopu un annu di sviluppu, RT-Thread 5.1, un sistema operatore in tempu reale (RTOS) per i dispositi Internet of Things, hè avà dispunibule. U sistema hè statu sviluppatu da u 2006 da una cumunità di sviluppatori chinesi è hè statu purtatu à 154 schede, chips è microcontrollers basati in architetture x86, ARM, MIPS, C-SKY, Xtensa, ARC è RISC-V. A custruzione minimalista RT-Thread (Nano) richiede solu 3 KB di Flash è 1.2 KB di RAM per operare. Per i dispositi IoT chì ùn sò micca assai limitati in risorse, una versione cumpleta hè offerta chì sustene a gestione di pacchetti, cunfiguratori, una pila di rete, pacchetti cù l'implementazione di una interfaccia grafica, sistemi di cuntrollu di voce, DBMS, servizii di rete è motori per l'esecuzione. scripts. U codice hè scrittu in C è distribuitu sottu a licenza Apache 2.0.
U sistema operatore hè custituitu da trè strati basi:
- Un kernel chì permette di eseguisce i travaglii in tempu reale. U kernel furnisce primitivi core generici chì coprenu aree cum'è a gestione di serratura è a sincronizazione di dati, pianificazione di attività, gestione di fili, gestione di signali, messa in fila, gestione di timer è gestione di memoria. E funzioni specifiche di hardware sò implementate à i livelli libcpu è BSP, chì includenu i drivers necessarii è u codice per sustene u CPU.
- Componenti è servizii chì funzionanu nantu à u kernel è offrenu astrazioni cum'è un sistema di fugliale virtuale, un sistema di gestione di eccezzioni, un almacenamentu di chjave / valore, interfaccia di linea di cummanda FinSH, pila di rete (LwIP) è quadri di rete, biblioteche di supportu di dispositivi, sottosistema audio, pila wireless, cumpunenti per supportà Wi-Fi, LoRa, Bluetooth, 2G/4G. L'architettura modulare vi permette di cunnette cumpunenti è servizii sicondu i vostri compiti è e risorse hardware dispunibili.
- Pacchetti software. I cumpunenti di u software generale è e librerie di funzioni sò distribuiti è installati in forma di pacchetti. U repository attualmente include più di 450 pacchetti, chì offre tuttu da interfacce grafiche, applicazioni multimediali è applicazioni di rete à sistemi di cuntrollu di robot è processori basati in l'apprendimentu di macchina. I pacchetti furniscenu ancu mutori per urganizà l'esekzione di prugrammi in e lingue Lua, JerryScript, MicroPython, PikaScript è Rust (rtt_rust).

Caratteristiche di a piattaforma:
- Supportu per l'architettura:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (microcontrollers da i pruduttori cum'è ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP sò supportati).
- 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 (SINOPSIA)
- DSP (TI).
- C-Ciulu.
- x86
- Architettura modulare estensibile chì permette di creà un ambiente adattatu per sistemi cù risorse limitate (requisiti minimi - 3 KB Flash è 1.2 KB RAM).
- Supportu per diverse interfacce standard per u sviluppu di prugramma, cum'è POSIX, CMSIS, C++ API. Separatamente, a capa RTduino hè sviluppata per a cumpatibilità cù l'API è e librerie di u prughjettu Arduino.
- Possibilità di espansione attraversu un sistema di pacchetti è cumpunenti plug-in.
- Supportu per u sviluppu di l'applicazioni per u processu di l'infurmazioni d'altu rendiment.
- Sistema di gestione di l'energia flessibile chì permette di mette automaticamente u dispusitivu in u modu di sonnu è di cuntrullà dinamicamente a tensione è a frequenza secondu a carica.
- Supportu hardware per a criptografia è a decifrazione, chì furnisce biblioteche cù diversi algoritmi criptografici.
- Interfaccia unificata per l'accessu à i dispositi periferichi è l'equipaggiu supplementu.
- Sistema di fugliale virtuale è dispunibilità di i driver per i sistemi di fugliale cum'è FAT, UFFS, NFSv3, ROMFS è RAMFS.
- Pila di protocolli per TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M, ecc.
- Un sistema per a consegna remota è l'installazione di l'aghjurnamenti chì sustene a criptografia è a verificazione per firma digitale, ripiglià una installazione interrotta, ricuperazione da un fallimentu, rolling back changes, etc.
- Un sistema di moduli di kernel caricati dinamicamente chì vi permette di custruisce è sviluppà separatamente cumpunenti di u kernel, è caricate dinamicamente quandu hè necessariu.
- Supporta diversi pacchetti di terze parti, cum'è Yaffs2, SQLite, FreeModbus, Canopen, etc.
- A capacità di cumpilà direttamente un pacchettu BSP (Board Support Package) cù cumpunenti per sustene una piattaforma hardware specifica, è caricallu à u bordu.
- A prisenza di un emulatore (BSP qemu-vexpress-a9), chì vi permette di sviluppà applicazioni senza aduprà veri boards.
- Supportu per compilatori cumuni è strumenti di sviluppu cum'è GCC, MDK Keil è IAR.
- Sviluppu di u nostru propiu ambiente di sviluppu integratu RT-Thread Studio IDE, chì permette di creà è debug l'applicazioni, caricali à i bordi, è gestisce i paràmetri. I plugins di sviluppu per RT-Thread sò ancu dispunibili per Eclipse è VS Code.
- A prisenza di l'interfaccia di cunsola Env, chì simplificà a creazione di prughjetti è a creazione di l'ambiente.
Trà i cambiamenti in a nova versione:
- RT-Smart, un sistema operatore hibridu basatu annantu à RT-Thread chì separa l'applicazioni da u kernel, supporta epoll, eventfd, signalfd, timerfd è selezziunà i meccanismi per difettu. U subsistema di emulatore di terminal hè statu implementatu. Supportu aghjuntu per i dispositi DFZU2EG MPSoC è cv181x-riscv.
- RTduino, una strata per assicurà a cumpatibilità cù l'ecosistema Arduino, hà aghjustatu supportu per raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark boards.
- Cumpunenti di terzu aghjurnati cum'è ssh, sftp, weston è vim.
- Aggiuntu u supportu per e nuove schede è chip cum'è HPMicro RISC-V, STM32 Nucleo, Adafruit Metro M4, Seeed Wio-Terminal, ST (stm32L431_ten)centos, 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).
- U travagliu di pianificatori di attività è CPU hè stata ottimizzata. Aggiuntu un stratu per astrattu u pianificatore rt_sched.
- L'ottimisazione di u travagliu nantu à i sistemi multi-core hè stata realizata.
- A capacità di cunnette i gestori à l'operazioni di allocazione di memoria malloc hè stata furnita.
- Per l'architetture ARM64 è RV64, u supportu per u backtrace di u kernel hè implementatu.
- A transizione à un novu mudellu di driver di u dispositivu hà cuntinuatu.
- U supportu SDL64 hè statu aghjuntu à i driver virtio qemu-virt64-aarch64 è qemu-virt2-riscv.
- Un framework aghjuntu per u sviluppu di i driver clk.
- Aggiunta a cunfigurazione exfat à DFS. U kernel hè statu cambiatu per utilizà u sistema di fugliale dfsv2 per automaticamente.
- Supportu migliuratu per i terminali TTY.
- U sistema I/O hà aghjustatu supportu per i bandieri O_DIRECT è O_SYNC.
- In l'implementazione di prucessi ligeri lwP (Lightweight Process), a funzione wp_new hè rimpiazzata da lwp_create. Aggiunta a funzione sys_setitimer.
- U supportu per a riservazione di memoria hè statu aghjuntu à u gestore di memoria MM è a funzione rt_aspace_mremap_range hè stata implementata.
- Libcpu aghjunghjenu supportu per i processori ARM Cortex-M85 è Cortex-R52
Source: opennet.ru
