Efter ett Ärs utveckling Àr version 5.1 av RT-Thread, operativsystemet i realtid (RTOS) för Internet of Things-enheter, nu tillgÀnglig. Systemet har utvecklats av ett kinesiskt utvecklargemenskap sedan 2006 och Àr för nÀrvarande portat för 154 plattformar, chip och mikrokontroller baserade pÄ x86, ARM, MIPS, C-SKY, Xtensa, ARC och RISC-V arkitekturer. Den minimalistiska versionen av RT-Thread (Nano) krÀver endast 3 KB Flash och 1,2 KB RAM för att fungera. För IoT-enheter som inte Àr kraftigt begrÀnsade i resurser erbjuds en fullfjÀdrad version som stödjer paketadministration, konfigurerare, nÀtverksstack, paket med grafiska anvÀndargrÀnssnitt, röststyrning, databashanterare, nÀtverkstjÀnster och motorer för skriptkörning. Koden Àr skriven i C och distribueras under Apache 2.0-licens.
Operativsystemet bestÄr av tre grundlÀggande lager:
- KÀrnan, som sÀkerstÀller att uppgifter körs i realtid. KÀrnan tillhandahÄller universella grundlÀggande primitiva funktioner som omfattar omrÄden som lÄsning och datasykronisering, uppgiftsplanering, trÄdhantering, signalhantering, meddelandeköer, timerhantering och minneshantering. Specifika hÄrdvarufunktioner implementeras pÄ nivÄn libcpu och BSP, som inkluderar nödvÀndiga drivrutiner och kod för att stödja CPU.
- Komponenterna och tjÀnsterna som arbetar ovanpÄ kÀrnan erbjuder sÄdana abstraktioner som en virtuell filsystem, undantagshanteringssystem, nyckel/vÀrde-lagring, kommandoradsgrÀnssnittet FinSH, nÀtverksstacken (LwIP) och nÀtverksramverk, bibliotek för enhetsstöd, ljudsystem, trÄdlös stack, komponenter för Wi-Fi, LoRa, Bluetooth och 2G/4G. Den modulÀra arkitekturen möjliggör anslutning av komponenter och tjÀnster beroende pÄ sina uppgifter och tillgÀngliga hÄrdvaruresurser.
- Programpaket. AllmÀnna programkomponenter och funktionsbibliotek distribueras och installeras i form av paket. För nÀrvarande innehÄller lagret över 450 paket som erbjuder allt frÄn grafiska grÀnssnitt, multimedia-applikationer och nÀtverksapplikationer till robotstyrningssystem och maskininlÀrningsbaserade hanterare. I paketen ingÄr Àven motorer för att köra program pÄ sprÄken Lua, JerryScript, MicroPython, PikaScript och Rust (rtt_rust).

Plattformens funktioner:
- Stöd för arkitekturer:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (stöd för mikrokontroller frÄn tillverkare som 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.
- ModulĂ€r arkitektur som kan anpassas för system med begrĂ€nsade resurser (minimi krav â 3 KB Flash och 1,2 KB RAM).
- Stöd för olika standardgrÀnssnitt för programutveckling, som POSIX, CMSIS, C++ API. En separat lager RTduino utvecklas för kompatibilitet med API och bibliotek frÄn Arduino-projektet.
- Möjlighet till utbyggnad via ett paket- och modulbaserat system.
- Stöd för utveckling av applikationer för högpresterande informationsbearbetning.
- Flexibelt strömsystem som automatiskt kan sÀtta enheten i vilolÀge och dynamiskt styra spÀnning och frekvens beroende pÄ belastning.
- Stöd för hÄrdvaror för kryptering och dekryptering, tillhandahÄllande av bibliotek med olika kryptografiska algoritmer.
- Enhetligt grÀnssnitt för Ätkomst till perifera enheter och ytterligare utrustning.
- Virtuellt filsystem och tillgÄng till drivrutiner för sÄdana 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, osv.
- System för fjÀrrleverans och installation av uppdateringar, som stödjer kryptering och verifiering med digital signatur, Äterupptagning av avbruten installation, ÄterstÀllning efter krasch, tillbaka-rullning av Àndringar osv.
- Ett system för dynamiskt laddningsbara kÀrnmoduler, som gör det möjligt att separat samla och utveckla kÀrnkomponenter och dynamiskt ladda dem vid behov.
- Stöd för olika tredjepartspaket, till exempel Yaffs2, SQLite, FreeModbus, Canopen etc.
- Möjlighet att direkt kompilera ett BSP-paket (Board Support Package) med komponenter för stöd av en specifik hÄrdvaruplattform och ladda det pÄ kortet.
- NÀrvaron av en emulator (BSP qemu-vexpress-a9) som gör det möjligt att utveckla applikationer utan att anvÀnda fysiska kort.
- Stöd för standardkompilatorer och utvecklingsverktyg som GCC, MDK Keil och IAR.
- Utveckling av den egna integrerade utvecklingsmiljön RT-Thread Studio IDE, som gör det möjligt att skapa och felsöka applikationer, ladda dem pÄ kort, och hantera instÀllningar. Plugins för att utveckla program för RT-Thread finns ocksÄ tillgÀngliga för Eclipse och VS Code.
- NÀrvaron av ett kommandoradsgrÀnssnitt Env, som förenklar skapandet av projekt och instÀllning av miljön.
Bland förÀndringarna i den nya versionen:
- I RT-Smart, det hybrida operativsystemet baserat pÄ RT-Thread som separerar applikationer frÄn kÀrnan, ingÄr standardmÀssigt stöd för mekanismer som epoll, eventfd, signalfd, timerfd och select. En terminalemulatorsubsystem har implementerats. Stöd för DFZU2EG MPSoC och cv181x-riscv-enheter har lagts till.
- I RTduino, lagret för att sÀkerstÀlla kompatibilitet med Arduino-ekosystemet, har stöd lagts till för korten raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo och stm32f407-rt-spark.
- Tredjeparts komponenter som ssh, sftp, weston och vim har uppdaterats.
- Stöd har lagts till för nya kort och chip, sÄsom 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).
- Prestandan hos schemalÀggare och CPU har optimerats. En lager för att abstraktionen av schemalÀggaren rt_sched har lagts till.
- Prestandan pÄ flerkÀrniga system har optimerats.
- Möjligheten att koppla handlare till minnesallokeringsoperationer malloc har tillhandahÄllits.
- För ARM64 och RV64-arkitekturer har stöd för kÀrnans omvÀnd spÄrning (backtrace) implementerats.
- ĂvergĂ„ngen till en ny enhetsdrivrutinsmodell har fortsatt.
- I virtio-drivrutinerna qemu-virt64-aarch64 och qemu-virt64-riscv har stöd för SDL2 lagts till.
- Ett ramverk för utveckling av clk-drivrutiner har lagts till.
- I DFS har konfigurationen exfat lagts till. KÀrnan har som standard omstÀllts att anvÀnda filsystemet dfsv2.
- Stödet för TTY-terminaler har förbÀttrats.
- Stöd för flaggorna O_DIRECT och O_SYNC har lagts till i in-/utmatningssystemet.
- I implementeringen av lÀtta processer lwP (Lightweight Process) har funktionen wp_new bytts ut mot lwp_create. En ny funktion sys_setitimer har lagts till.
- I minneshanteraren MM har stöd för minnesreservering lagts till och funktionen rt_aspace_mremap_range har implementerats.
- Stöd för ARM Cortex-M85 och Cortex-R52-processorer har lagts till i Libcpu.
KĂ€lla: opennet.ru
