RT-Thread 5.0, ett realtidsoperativsystem (RTOS) för Internet of Things-enheter, har slÀppts. Systemet har utvecklats av ett kinesiskt utvecklargemenskap sedan 2006 och har för nÀrvarande portats till nÀstan 200 plattformar, chip och mikrokontroller baserade pÄ x86, ARM, MIPS, C-SKY, Xtensa, ARC och RISC-V-arkitekturer. RT-Thread (Nano) minimalistiska version krÀver endast 3 KB Flash och 1,2 KB RAM för att fungera. För IoT-enheter med rikligt med resurser erbjuds en fullstÀndig version som stöder paketadministration, konfigurerare, nÀtverksstack, paket med grafiska grÀnssnitt, röststyrningssystem, databaser, nÀtverkstjÀnster och skriptmotorer. Koden Àr skriven i C och distribueras under Apache 2.0-licensen.
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).
- 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.

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).

Bland de nya funktionerna som lagts till i version 5.0 kan nÀmnas betydande förbÀttringar av stödet för flerprocessor- och flertrÄdade system (till exempel har nÀtverksstack och filsystem anpassats för att fungera i flertrÄdat lÀge, och schemalÀggaren har delats upp i alternativ för enkÀrniga system och SMP). Implementeringen av TLS (Thread Local Storage) har lagts till. Stödet för Cortex-A-chips har förbÀttrats avsevÀrt. Stödet för 64-bitars system har förbÀttrats avsevÀrt (TCP/IP-stacken och filsystemen har verifierats för 64-bitars system). Komponenter för hantering av Flash-minne har integrerats. Verktygssatsen för att skapa drivrutiner har omarbetats.
KĂ€lla: opennet.ru


