Megjelent az RT-Thread 5.0, egy valós idejű operációs rendszer (RTOS) az Internet of Things eszközökhöz. A rendszert 2006 óta fejleszti kínai fejlesztők közössége, és jelenleg csaknem 200 x86, ARM, MIPS, C-SKY, Xtensa, ARC és RISC-V architektúrákon alapuló kártyára, chipre és mikrokontrollerre portolták. A minimalista RT-Thread (Nano) build működéséhez mindössze 3 KB Flash és 1.2 KB RAM szükséges. Az erőforrásokban nem nagyon korlátozott IoT-eszközökhöz egy teljes funkcionalitású verziót kínálnak, amely támogatja a csomagkezelést, a konfigurátorokat, a hálózati veremet, a grafikus interfész megvalósításával rendelkező csomagokat, a hangvezérlő rendszereket, a DBMS-t, a hálózati szolgáltatásokat és a végrehajtó motorokat. forgatókönyvek. A kód C nyelven íródott, és az Apache 2.0 licenc alatt kerül terjesztésre.
A platform jellemzői:
- Építészeti támogatás:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (olyan gyártók mikrovezérlői támogatottak, mint 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] (szifive, Canaan Kendryt, bouffalo_lab, Nuclei, T-Head).
- ARC (SYNOPSYS)
- DSP (TI).
- C-Sky.
- x86.
- Bővíthető moduláris architektúra, amely lehetővé teszi a korlátozott erőforrásokkal rendelkező rendszerek számára megfelelő környezet létrehozását (minimális követelmények - 3 KB Flash és 1.2 KB RAM).
- Különféle szabványos interfészek támogatása a programfejlesztéshez, például POSIX, CMSIS, C++ API. Az RTduino réteget külön fejlesztik az Arduino projekt API-val és könyvtárakkal való kompatibilitás érdekében.
- Bővítési lehetőség csomagok és beépülő komponensek rendszerén keresztül.
- Alkalmazásfejlesztés támogatása nagy teljesítményű információfeldolgozáshoz.
- Rugalmas energiagazdálkodási rendszer, amely lehetővé teszi a készülék automatikus alvó üzemmódba helyezését, és dinamikusan szabályozza a feszültséget és a frekvenciát a terheléstől függően.
- Hardveres támogatás titkosításhoz és visszafejtéshez, könyvtárak biztosítása különféle kriptográfiai algoritmusokkal.
- Egységes interfész a perifériás eszközök és kiegészítő berendezések eléréséhez.
- Virtuális fájlrendszer és illesztőprogramok elérhetősége olyan fájlrendszerekhez, mint a FAT, UFFS, NFSv3, ROMFS és RAMFS.
- Protokollverem TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M stb.
- Frissítések távoli kézbesítésére és telepítésére szolgáló rendszer, amely támogatja a titkosítást és a digitális aláírással történő ellenőrzést, a megszakadt telepítés folytatását, a hiba utáni helyreállítást, a változtatások visszaállítását stb.
- Dinamikusan betöltött kernelmodulok rendszere, amely lehetővé teszi a kernelkomponensek külön felépítését és fejlesztését, valamint szükség esetén dinamikus betöltését.
- Támogatja a különféle harmadik féltől származó csomagokat, mint például a Yaffs2, SQLite, FreeModbus, Canopen stb.
- Lehetőség egy BSP-csomag (Board Support Package) közvetlen fordítására egy adott hardverplatform támogatására szolgáló összetevőkkel, és betölthető az alaplapra.
- Elérhető egy emulátor (BSP qemu-vexpress-a9), amely lehetővé teszi alkalmazások fejlesztését valódi táblák használata nélkül.
- Az általános fordítók és fejlesztőeszközök támogatása, például a GCC, az MDK Keil és az IAR.
- Saját integrált fejlesztői környezetünk, az RT-Thread Studio IDE fejlesztése, amely lehetővé teszi alkalmazások létrehozását és hibakeresését, kártyákra való betöltését és beállítások kezelését. Az RT-Thread fejlesztői bővítményei az Eclipse és a VS Code számára is elérhetők.
- Az Env konzolfelület jelenléte, amely leegyszerűsí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:
- Egy kernel, amely lehetővé teszi a feladatok valós időben történő végrehajtását. A kernel általános alapprimitíveket biztosít olyan területekre, mint a zárkezelés és az adatszinkronizálás, a feladatütemezés, a szálkezelés, a jelkezelés, az üzenetsorkezelés, az időzítőkezelés és a memóriakezelés. A hardver-specifikus funkciókat a libcpu és a BSP szinten valósítják meg, amelyek magukban foglalják a CPU támogatásához szükséges illesztőprogramokat és kódot.
- A rendszermag tetején futó és absztrakciókat kínáló komponensek és szolgáltatások, például virtuális fájlrendszer, kivételkezelő rendszer, kulcs/érték tároló, FinSH parancssori interfész, hálózati verem (LwIP) és hálózati keretrendszerek, eszköztámogató könyvtárak, audio alrendszer, vezeték nélküli verem, a Wi-Fi-t támogató alkatrészek, LoRa, Bluetooth, 2G/4G. A moduláris architektúra lehetővé teszi az összetevők és szolgáltatások összekapcsolását a feladatoktól és a rendelkezésre álló hardvererőforrásoktól függően.
- Szoftvercsomagok. Az általános célú szoftverösszetevőket és funkciókönyvtárakat csomagok formájában terjesztik és telepítik. A repository jelenleg több mint 450 csomagot tartalmaz, amelyek a grafikus felületektől, multimédiás alkalmazásoktól és hálózati alkalmazásoktól kezdve a robotvezérlő rendszerekig és a gépi tanuláson alapuló processzorokig mindent kínálnak. A csomagok motorokat is biztosítanak a programok végrehajtásának megszervezéséhez Lua, JerryScript, MicroPython, PikaScript és Rust (rtt_rust) nyelveken.
Az 5.0-s verzióban hozzáadott újdonságok között jelentős javulás figyelhető meg a többmagos és többszálú rendszerek támogatásában (például a hálózati verem és a fájlrendszerek adaptálva lettek többszálas módban történő munkára, az ütemező megosztott az egymagos rendszerek és az SMP opciókba). Hozzáadott TLS (Thread Local Storage) megvalósítás. Továbbfejlesztett támogatás a Cortex-A chipekhez. Jelentősen továbbfejlesztett támogatás a 64 bites rendszerekhez (a TCP/IP verem és fájlrendszerek 64 bites rendszerek esetén ellenőrizve vannak). A flash memória kezelési összetevői be vannak építve. Az illesztőprogramok létrehozásának eszköztárát újratervezték.
Forrás: opennet.ru