RT-Thread 5.3, ett realtidsoperativsystem (RTOS) för Internet of Things-enheter, har slÀppts. Systemet har utvecklats sedan 2006 av en grupp kinesiska utvecklare och har nu portats till 155 kort, chip och mikrokontroller baserade pÄ x86-, ARM-, MIPS-, C-SKY-, Xtensa-, ARC- och RISC-V-arkitekturer. En minimalistisk version av RT-Thread (Nano) krÀver endast 3 KB Flash och 1.2 KB RAM. För IoT-enheter med obegrÀnsade resursbegrÀnsningar finns en fullfjÀdrad version tillgÀnglig, som stöder pakethantering, konfiguratorer, en nÀtverksstack, GUI-paket, röststyrningssystem, ett DBMS, nÀtverkstjÀnster och skriptmotorer. Koden Àr skriven i C och distribueras under Apache 2.0-licensen.
Operativsystemet bestÄr av tre grundlÀggande lager:
- En kÀrna som gör att uppgifter kan utföras i realtid. KÀrnan tillhandahÄller generiska kÀrnprimitiver som tÀcker omrÄden som lÄshantering och datasynkronisering, uppgiftsschemalÀggning, trÄdhantering, signalhantering, meddelandekö, timerhantering och minneshantering. HÄrdvaruspecifika funktioner implementeras pÄ libcpu- och BSP-nivÄerna, som inkluderar nödvÀndiga drivrutiner och kod för att stödja processorn.
- Komponenter och tjÀnster som körs ovanpÄ kÀrnan och erbjuder abstraktioner sÄsom ett virtuellt filsystem, undantagshanteringssystem, nyckel/vÀrdelagring, FinSH kommandoradsgrÀnssnitt, nÀtverksstack (LwIP) och nÀtverksramverk, bibliotek för enhetsstöd, ljudundersystem, trÄdlös stack, komponenter för att stödja Wi-Fi, LoRa, Bluetooth, 2G/4G. ModulÀr arkitektur lÄter dig ansluta komponenter och tjÀnster beroende pÄ dina uppgifter och tillgÀngliga hÄrdvaruresurser.
- Programvarupaket. Programvarukomponenter och funktionsbibliotek för allmÀnna ÀndamÄl distribueras och installeras i form av paket. Förvaret innehÄller för nÀrvarande mer Àn 450 paket, som erbjuder allt frÄn grafiska grÀnssnitt, multimediaapplikationer och nÀtverksapplikationer till robotstyrsystem och maskininlÀrningsbaserade processorer. Paketen tillhandahÄller Àven motorer för att organisera exekveringen av program pÄ sprÄken Lua, JerryScript, MicroPython, PikaScript och Rust (rtt_rust).

Plattformsfunktioner:
- Arkitekturstöd:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (mikrokontroller frÄn tillverkare som ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP stöds).
- 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.
- Utökningsbar modulÀr arkitektur som lÄter dig skapa en miljö som lÀmpar sig för system med begrÀnsade resurser (minimikrav - 3 KB Flash och 1.2 KB RAM).
- Stöd för olika standardgrÀnssnitt för programutveckling, sÄsom POSIX, CMSIS, C++ API. RTduino-lagret utvecklas separat för kompatibilitet med Arduino-projektets API och bibliotek.
- Möjlighet till expansion genom ett system av paket och plug-in komponenter.
- Stöd för applikationsutveckling för högpresterande informationsbehandling.
- Flexibelt strömhanteringssystem som lÄter dig automatiskt försÀtta enheten i vilolÀge och dynamiskt styra spÀnning och frekvens beroende pÄ belastningen.
- HÄrdvarustöd för kryptering och dekryptering, tillhandahÄllande av bibliotek med olika kryptografiska algoritmer.
- Enhetligt grÀnssnitt för Ätkomst till kringutrustning och ytterligare utrustning.
- Virtuella filsystem och tillgÀnglighet av drivrutiner för filsystem som FAT, UFFS, NFSv3, ROMFS och RAMFS.
- Protokollstack för TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M, etc.
- Ett system för fjÀrrleverans och installation av uppdateringar som stöder kryptering och verifiering med hjÀlp av en digital signatur, Äteruppta en avbruten installation, ÄterstÀlla efter ett fel, ÄterstÀlla Àndringar, etc.
- Ett system med dynamiskt laddade kÀrnmoduler som lÄter dig bygga och utveckla kÀrnkomponenter separat, och dynamiskt ladda dem nÀr det behövs.
- Stöder olika tredjepartspaket, sÄsom Yaffs2, SQLite, FreeModbus, Canopen, etc.
- Möjligheten att direkt kompilera ett BSP-paket (Board Support Package) med komponenter för att stödja en specifik hÄrdvaruplattform och ladda det pÄ kortet.
- TillgÀngligheten av en emulator (BSP qemu-vexpress-a9), som lÄter dig utveckla applikationer utan att anvÀnda riktiga kort.
- Stöd för vanliga kompilatorer och utvecklingsverktyg som GCC, MDK Keil och IAR.
- Utveckling av vÄr egen integrerade utvecklingsmiljö RT-Thread Studio IDE, som lÄter dig skapa och felsöka applikationer, ladda dem pÄ kort och hantera instÀllningar. Utvecklingsplugins för RT-Thread Àr ocksÄ tillgÀngliga för Eclipse och VS Code.
- TillgÀnglighet för Env-konsolens grÀnssnitt, vilket förenklar skapandet av projekt och stÀller in miljön.
Bland Àndringarna i den nya utgÄvan:
- Stöd för att utveckla komponenter i Rust-sprÄket har utökats. Rustbindningar har lagts till för trÄdar, mutexer, semaforer, meddelandeköer, samt operationer med minne, tid och filer. Komponenter för integration med SCons och Cargo har implementerats. Automatisk detektering av ARM-, AArch64- och RISC-V-mÄlplattformar Àr nu tillgÀnglig. Procedurmakron för initialisering och kommandoregistrering har lagts till.
- För Cortex-M-mikrokontroller Àr stöd för Open Firmware-standarden med beskrivning av kringutrustning via Device Tree aktiverat.
- Lade till stöd för VirtIO 1.2 med möjligheten att anvÀnda paketköer, MMIO/PCI-transporter och DMA-synkronisering. VirtIO-drivrutiner för 9P, krypto, RNG, SCMI och SCSI har lagts till. VirtIO-drivrutiner för nÀtverk, blockenheter, konsol, inmatningsenheter och GPU har uppdaterats.
- Ramverket DVFS (Dynamic Voltage and Frequency Scaling) har lagts till för dynamisk hantering av CPU och enhetsfrekvens. Integration med ARM SCMI-firmware för energihantering har tillhandahÄllits. FlÀkthanteringen har förbÀttrats.
- Lade till stöd för TEE-miljöer (Trusted Execution Environment) och meddelandemekanismen RPMSG (Remote Processor Messaging).
- Stöd för Unix-sockets har implementerats.
- Lade till stöd för sÀkerhetsmekanismer för trÄdlösa nÀtverk WPA3, EA (Enterprise Authentication), WAPI, OWE och DPP.
- Lade till stöd för tidssynkroniseringsprotokollet PTP (Precision Time Protocol).
- Ramverket Clock Time har lagts till för att arbeta med tid, med stöd för högprecisionstimers och tidssynkronisering över flera kÀllor. Det nya ramverket ersÀtter de tidigare anvÀnda komponenterna ktime, cputime och hwtimer.
- Filsystemet 9PFS har implementerats och anvÀnds för att utbyta filer mellan vÀrdmiljön och virtuella maskiner.
- Implementeringen av lÀtta processer (lwP) stöder nu ARM-arkitekturen och lÀgger till stöd för vDSO-mekanismen (virtuellt dynamiskt delat objekt), vilket gör att hanterare kan flyttas frÄn kÀrnan till anvÀndarutrymmet och undvika kontextvÀxlar.
- KÀrnan implementerar stöd för 8- och 16-bitars atomÀra operationer.
- Lade till stöd för symmetrisk multiprocessing (SMP) för XuanTie C/R-seriens RISC-V-processorer och QEMU virt64-emulatorn.
- CherryUSB USB-stacken uppdaterad till 1.6.1.
- Lade till nya DM-drivrutiner (Enhetshanteraren) för UFS, AHCI, NVMe, Ethernet, Intel HDA, joysticks och pekskÀrmar.
KĂ€lla: opennet.ru
