Pärast aasta arendust on käes RT-Thread 5.1 väljaanne, reaalaegsete operatsioonisüsteemide (RTOS) süsteem Interneti-asjade seadmetele. Süsteem on arenenud alates 2006. aastast Hiina arendajate kogukonna poolt ja on hetkel portiteeritud 154 platvormile, kiipidele ja mikrokontrolleritele, mis põhinevad x86, ARM, MIPS, C-SKY, Xtensa, ARC ja RISC-V arhitektuuridel. Minimalistlik RT-Thread (Nano) versioon vajab tööks vaid 3 KB Flashi ja 1.2 KB RAM-i. Ressursside osas mittepiiritletud IoT-seadmetele on pakutud täieliku funktsionaalsusega versioon, mis toetab paketihaldust, konfigureerijaid, võrgu steki, graafilise liidese rakenduste pakette, häälte haldamise süsteeme, andmebaase, võrgu teenuseid ja skriptide täitmise mootoreid. Kood on kirjutatud C keeles ja levitatakse Apache 2.0 litsentsi all.
Operatsioonisüsteem koosneb kolmest põhikihtidest:
- Tuumik, mis tagab ülesannete täitmise reaalaegses režiimis. Tuumik peab silmas universaalseid põhielemente, mis katab valdkondi nagu lukustamise juhtimine ja andmete sünkroonimine, ülesannete planeerimine, niidihaldus, signaalide töötlemine, sõnumijärjekorrad, ajastajate juhtimine, mälu juhtimine. Riistvara-spetsiifilisi omadusi on rakendatud libcpu ja BSP tasemel, mis sisaldab vajalikke draivereid ja koodi CPU toe jaoks.
- Komponendid ja teenused, mis töötavad tuumiku kohal ja pakuvad selliseid abstraktsioone nagu virtuaalne failisüsteem, erandite töötlemise süsteem, võtme-väärtuse formaadis hoidmine, käsurea liides FinSH, võrgu stek (LwIP) ja võrgu raamistikud, seadmete toetamiseks mõeldud raamatukogud, heliallikasüsteem, traadita stek, komponentide toekomplekt Wi-Fi, LoRa, Bluetooth, 2G/4G toeks. Moodulaarne arhitektuur võimaldab komponente ja teenuseid ühendada, olenevalt teie ülesannetest ja olemasolevatest riistvararessurssidest.
- Programmide paketid. Üldotstarbelised tarkvarakomponendid ja funktsioonide teegid levitatakse ja installitakse pakettide kujul. Käesoleval hetkel sisaldab reposteoorium rohkem kui 450 paketti, mis pakuvad lahendusi alates graafilistest liidestest, multimeedia rakendustest ja võrgurakendustest kuni robotite juhtimissüsteemide ja masinõppel põhinevate töötlejate juurde. Pakettidega tarnitakse ka mootoreid programmide käitamiseks keeles Lua, JerryScript, MicroPython, PikaScript ja Rust (rtt_rust).

Platvormi omadused:
- Toetatud arhitektuurid:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (toetatakse mikroprotsessoreid tootjatelt nagu 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.
- Laienev moodulaarne arhitektuur, mis võimaldab luua keskkonda, mis sobib piiratud ressurssidega süsteemidele (minimaalsed nõuded — 3 KB Flash ja 1.2 KB RAM).
- Toetatakse erinevaid standardliideseid programmide arendamiseks, näiteks POSIX, CMSIS, C++ API. Eraldi arendatakse RTduino kihti, et tagada ühilduvus Arduino projekti API ja teekidega.
- Võimekus laiendada pakettide ja ühendatavate komponente süsteemi kaudu.
- Toetatakse rakenduste arendust kõrge jõudlusega andmetöötluseks.
- Paindlik energiahallussüsteem, mis võimaldab seadme automaatset üleviimist unerežiimi ja dünaamiliselt juhtida pinget ja sagedust vastavalt koormusele.
- Toetatakse riistvara krüpteerimist ja dekodeerimist, pakkudes teeke erinevate krüptograafiliste algoritmidega.
- Ühtne liides juurdepääsuks periferiaseadmetele ja lisaseadmetele.
- Virtuaalne failisüsteem ja draiverite olemasolu selliste failisüsteemide jaoks nagu FAT, UFFS, NFSv3, ROMFS ja RAMFS.
- Protokollide virn TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M jne.
- Kauguuenduste ja paigalduse süsteem, mis toetab krüpteerimist ja digitaalset allkirja kinnitust, katkenud paigalduse jätkamist, taastumist riketest, muudatuste tagasiviimist jne.
- Dünaamilistel kerneli lisamoodulitel põhinev süsteem, mis võimaldab eraldi kokku panna ja arendada kerneli komponente ning neid dünaamiliselt laadida vastavalt vajadusele.
- Migite kolmandate osapoolte pakettide, näiteks Yaffs2, SQLite, FreeModbus, Canopen jne toetamine.
- Omandatakse otse BSP-paketi (Board Support Package) kompileerimise võimalus, et toetada teatud riistvaraplatvorme ja laadida see plaadile.
- Saadaval on emulaator (BSP qemu-vexpress-a9), mis võimaldab rakenduste arendamist ilma reaalse plaatideta.
- Toetatakse standardseid kompilaatoreid ja arendustööriistu nagu GCC, MDK Keil ja IAR.
- Arendatakse enda integreeritud arenduskeskkonda RT-Thread Studio IDE, mis võimaldab luua ja tõrkeotsida rakendusi, laadida neid plaatidele ja hallata seadistusi. RT-Threadi rakenduste arendamiseks on pluginaid ka Eclipse'i ja VS Code'i jaoks.
- Kasutuses on Env konsooliliides, mis lihtsustab projektide loomist ja keskkonna seadistamist.
Among the changes in the new release:
- RT-Smartis, hybridooperatsioonisüsteemis RT-Threadi põhjal, mis eraldab rakendused kernelist, on vaikimisi toetatud epoll, eventfd, signalfd, timerfd ja select mehhanismid. Terminali emulaatori alam-süsteem on rakendatud. Lisatud tugi DFZU2EG MPSoC ja cv181x-riscv seadmetele.
- RTduino, Arduino ökosüsteemiga ühilduv kiht, toetas raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark plaate.
- Uuendatud kolmandate osapoolte komponente, nagu ssh, sftp, weston ja vim.
- Lisatud toe uutele plaatidele ja kiipidele, nagu 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).
- Optimeeritud on ülesannete ajastuse ja CPU töö, lisatud on vahekiht ajasturi rt_sched abstraktsioneerimiseks.
- Tehtud on optimeerimine mitme tuuma süsteemide jaoks.
- Pakutakse võimalust siduda töötlejad mälu eraldamise operatsioonidega malloc.
- ARM64 ja RV64 arhitektuuride jaoks on toetatud tuuma tagasijälgimist (backtrace).
- Jätkatakse üleminekut uuele seadmete draiverite mudelile.
- Virtio-draiverites qemu-virt64-aarch64 ja qemu-virt64-riscv on lisatud SDL2 tugi.
- Lisatud on raamistiku draiverite clk arendamiseks.
- DFS-i on lisatud exfat konfiguratsioon. Tuum on vaikimisi ümber lülitatud DFSv2 failisüsteemi kasutamisele.
- TTY-terminaalide tugi on paranenud.
- Sisendi/väljundi süsteemis on lisatud O_DIRECT ja O_SYNC lipud.
- Kergprotsesside lwP (Lightweight Process) teostuses on funktsioon wp_new asendatud lwp_create'iga. Lisatud funktsioon sys_setitimer.
- Mäluhaldur MM on lisatud mälu reserveerimise tugi ja rakendatud funktsioon rt_aspace_mremap_range.
- Libcpu-s on lisatud ARM Cortex-M85 ja Cortex-R52 protsessori tugi.
Allikas: opennet.ru
