Megjelent az RT-Thread 5.0 kiadása, a valós idejű operációs rendszer (RTOS) az IoT-eszközök számára. A rendszer 2006 óta fejlődik a kínai fejlesztők közössége által, és jelenleg közel 200 platformra, chipre és mikrovezérlőre van portolva, amely x86, ARM, MIPS, C-SKY, Xtensa, ARC és RISC-V architektúrákra épül. Az RT-Thread minimalista változata (Nano) mindössze 3 KB Flash-t és 1.2 KB RAM-ot igényel a működéshez. Az IoT-eszközök számára, amelyek nem korlátozottak erőforrásaikban, egy teljes funkcionalitású verzió érhető el, amely támogatja a csomagkezelést, konfigurálókat, hálózati verem, grafikus felhasználói felületet implementáló csomagokat, hangalapú vezérlési rendszereket, adatbázisokat, hálózati szolgáltatásokat és szkript-végrehajtó motorokat. A kód C nyelven készült és Apache 2.0 licenc alatt terjesztik.
A platform jellemzői:
- Architektúrák támogatása:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (támogatott mikrokontroller gyártók, mint például az ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, 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.
- Bővíthető modulos architektúra, amely lehetővé teszi egy olyan környezet kialakítását, amely alkalmas korlátozott erőforrású rendszerekhez (minimum követelmények — 3 KB Flash és 1.2 KB RAM).
- Különböző szabványos interfészek támogatása szoftverfejlesztéshez, mint például a POSIX, CMSIS, C++ API. Külön projektként fejlesztik az RTduino réteget az API és az Arduino projekt könyvtáraival való kompatibilitás érdekében.
- Bővíthetőség csomagok és csatlakoztatható komponensek révén.
- Alkalmazásfejlesztés támogatása nagy teljesítményű információfeldolgozáshoz.
- Rugalmas energiafelhasználás-kezelő rendszer, amely lehetővé teszi az eszköz automatikus alvó módba állítását és a feszültség és frekvencia dinamikus kezelését a terhelés függvényében.
- Hardveres támogatás titkosításhoz és visszafejtéshez, különböző kriptográfiai algoritmusokkal rendelkező könyvtárak biztosítása.
- Egységesített interfész a perifériás eszközökhöz és kiegészítő berendezésekhez.
- Virtuális fájlrendszer és támogatás a FAT, UFFS, NFSv3, ROMFS és RAMFS fájlrendszerekhez.
- TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M és hasonló protokollok halmaza.
- Távfrissítési és telepítési rendszer, amely támogatja a titkosítást és a digitális aláírást, lehetőséget nyújt a megszakított telepítések folytatására, a hiba utáni helyreállításra, a módosítások visszavonására stb.
- A dinamikusan betöltődő moduláris rendszer, amely lehetővé teszi a kernel összetevőinek különálló összeállítását és fejlesztését, valamint az azok dinamikus betöltését szükség esetén.
- Támogatás különböző harmadik féltől származó csomagokhoz, például Yaffs2, SQLite, FreeModbus, Canopen stb.
- Lehetőség közvetlen BSP-csomag (Hardver Támogatási Csomag) fordítására, amely meghatározott hardverplatform támogatásához szükséges komponenseket tartalmaz, és annak feltöltésére a panelre.
- Elérhető egy emulátor (BSP qemu-vexpress-a9), amely lehetővé teszi alkalmazások fejlesztését valós panel használata nélkül.
- Támogatás a szabványos fordítók és fejlesztőeszközök számára, mint például GCC, MDK Keil és IAR.
- Folyamatosan fejlődő integrált fejlesztői környezet RT-Thread Studio IDE, amely lehetővé teszi alkalmazások létrehozását és debuggolását, azok panelre való feltöltését és a beállítások kezelését. RT-Thread programok fejlesztéséhez pluginek érhetők el az Eclipse és a VS Code számára is.

- Elérhető az Env konzolos felület, amely megkönnyíti a projektek létrehozását és a környezet beállítását.

Az operációs rendszer három alapvető rétegből áll:
- Az operációs rendszer magja, amely biztosítja a valós idejű feladatvégzést. A mag általános alapvető primitívokat biztosít, amelyek olyan területeket ölelnek fel, mint a zároláskezelés és az adatok szinkronizálása, feladatütemezés, szálkezelés, jelkezelés, üzenetsorok, időzítőkezelés, memória kezelés. A hardver-specifikus jellemzők a libcpu és a BSP szintjén valósulnak meg, amelyek tartalmazzák a szükséges meghajtókat és a CPU támogatásához szükséges kódot.
- A mag fölött működő komponensek és szolgáltatások, amelyek olyan absztrakciókat kínálnak, mint a virtuális fájlrendszer, kivételkezelő rendszer, kulcs/érték tárolási formátum, FinSH parancssori felület, hálózati verem (LwIP) és hálózati keretrendszerek, eszköz támogatására szolgáló könyvtárak, hangalrendszer, vezeték nélküli verem, Wi-Fi, LoRa, Bluetooth, 2G/4G támogatására szolgáló komponensek. A moduláris architektúra lehetővé teszi, hogy a komponensek és szolgáltatások az adott feladatok és az elérhető hardver-erőforrások függvényében csatlakoztathatók legyenek.
- Programcsomagok. Az általános célú programkomponensek és funkciókönyvtárak csomagok formájában terjesztésre és telepítésre kerülnek. Jelenleg a tároló több mint 450 csomagot tartalmaz, amelyek grafikus felületektől, multimédiás alkalmazásoktól és hálózati alkalmazásoktól kezdve, robotikai vezérlőrendszereken és gépi tanuláson alapuló feldolgozókon keresztül működnek. A csomagok tartalmaznak motorokat is, amelyek lehetővé teszik a programok végrehajtását Lua, JerryScript, MicroPython, PikaScript és Rust (rtt_rust) nyelveken.

Az 5.0-ás verzióhoz hozzáadott új lehetőségek közé tartozik a többmagú és párhuzamos rendszerek támogatásának jelentős javítása (például a párhuzamos üzemmódhoz a hálózati verem és a fájlrendszerek is alkalmazkodtak, míg az ütemező egy- és többmagú rendszerekhez készült változatokra lett felosztva). TLS (Thread Local Storage) implementáció került hozzáadásra. A Cortex-A chipek támogatása is javult. A 64-bites rendszerek támogatása jelentősen fejlődött (a TCP/IP verem és fájlrendszerek 64-bites rendszerekhez igazítva lettek). Flash memória kezelő komponensek integrálva lettek. A meghajtóprogramok létrehozásához szükséges eszközkészletet átdolgozták.
Forrás: opennet.ru


