RT-Thread 5.3, et realtidsoperativsystem (RTOS) til Internet of Things-enheder, er blevet udgivet. Det er udviklet siden 2006 af et fællesskab af kinesiske udviklere og er nu blevet porteret til 155 boards, chips og mikrocontrollere baseret på x86-, ARM-, MIPS-, C-SKY-, Xtensa-, ARC- og RISC-V-arkitekturer. En minimalistisk version af RT-Thread (Nano) kræver kun 3 KB Flash og 1.2 KB RAM. Til IoT-enheder med ubegrænsede ressourcebegrænsninger er en fuldt udstyret version tilgængelig, der understøtter pakkehåndtering, konfiguratorer, en netværksstak, GUI-pakker, stemmestyringssystemer, et DBMS, netværkstjenester og scripting-motorer. Koden er skrevet i C og distribueret under Apache 2.0-licensen.
Operativsystemet består af tre grundlæggende lag:
- En kerne, der muliggør udførelse af opgaver i realtid. Kernen giver generelle grundlæggende primitiver, der dækker områder som låse- og datasynkroniseringsstyring, opgaveplanlægning, trådstyring, signalhåndtering, beskedkøer, timerstyring og hukommelsesstyring. Hardware-specifikke funktioner er implementeret på libcpu- og BSP-niveau, som inkluderer de nødvendige drivere og kode til at understøtte CPU'en.
- Komponenter og tjenester, der kører oven på kernen, der leverer abstraktioner såsom et virtuelt filsystem, undtagelseshåndteringssystem, nøgle/værdilagring, FinSH kommandolinjegrænseflade, netværksstak (LwIP) og netværksrammer, biblioteker til enhedsunderstøttelse, lydundersystem, trådløs stak, komponenter til Wi-Fi, LoRa, Bluetooth, 2G/4G-understøttelse. Den modulære arkitektur giver dig mulighed for at forbinde komponenter og tjenester afhængigt af dine opgaver og tilgængelige hardwareressourcer.
- Softwarepakker. Generelle softwarekomponenter og funktionsbiblioteker distribueres og installeres i form af pakker. Lagret omfatter i øjeblikket over 450 pakker, lige fra grafiske grænseflader, multimedieapplikationer og netværksapplikationer til robotstyringssystemer og maskinlæringsbaserede processorer. Pakkerne inkluderer også motorer til at organisere afviklingen af programmer i sprogene Lua, JerryScript, MicroPython, PikaScript og Rust (rtt_rust).

Platforms funktioner:
- Understøttede arkitekturer:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (mikrocontrollere fra producenter som ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP understøttes).
- ARM Cortex-R4.
- ARM Cortex-A8/A9 (NXP).
- ARM7 (Samsung).
- ARM9 (Allwinner, Xilinx, GOKE).
- ARM11 (FuldHan).
- 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.
- En udvidelsesbar modulær arkitektur, der giver dig mulighed for at skabe et miljø, der er egnet til ressourcebegrænsede systemer (minimumskrav er 3 KB Flash og 1.2 KB RAM).
- Understøtter forskellige standardgrænseflader til programudvikling, såsom POSIX, CMSIS, C++ API. RTduino-laget udvikles separat for kompatibilitet med Arduino-projektets API og biblioteker.
- Kan udvides gennem et system af pakker og plug-ins.
- Støtte til udvikling af højtydende informationsbehandlingsapplikationer.
- Fleksibelt strømstyringssystem, der gør det muligt for enheden automatisk at skifte til dvaletilstand og dynamisk styre spænding og frekvens afhængigt af belastningen.
- Understøttelse af hardware til kryptering og dekryptering, giver biblioteker forskellige kryptografiske algoritmer.
- En samlet grænseflade til adgang til perifere enheder og ekstraudstyr.
- Virtuel FS og tilgængelighed af drivere til FS som FAT, UFFS, NFSv3, ROMFS og RAMFS.
- Protokolstak til TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M osv.
- Et system til fjernlevering og installation af opdateringer, der understøtter kryptering og verifikation ved digital signatur, genoptagelse af afbrudte installationer, retablering efter fejl, tilbagerulning af ændringer mv.
- Et system af dynamisk indlæsbare kernemoduler, der gør det muligt at bygge og udvikle kernekomponenter separat og dynamisk indlæses, når det er nødvendigt.
- Understøttelse af forskellige tredjepartspakker, såsom Yaffs2, SQLite, FreeModbus, Canopen osv.
- Muligheden for direkte at kompilere en BSP (Board Support Package) med komponenter til at understøtte en specifik hardwareplatform og indlæse den på kortet.
- Tilgængeligheden af en emulator (BSP qemu-vexpress-a9), der gør det muligt at udvikle applikationer uden at bruge rigtige boards.
- Support til almindelige compilere og udviklingsværktøjer som GCC, MDK Keil og IAR.
- Udvikling af vores eget integrerede udviklingsmiljø RT-Thread Studio IDE, som giver dig mulighed for at oprette og debugge applikationer, indlæse dem på boards og administrere indstillinger. Plugins til udvikling af programmer til RT-Thread er også tilgængelige til Eclipse og VS Code.
- Tilstedeværelsen af Env-konsolgrænsefladen, som forenkler oprettelsen af projekter og miljøopsætning.
Blandt ændringerne i den nye udgivelse:
- Understøttelse af udvikling af komponenter i Rust-sproget er blevet udvidet. Rust-bindinger er blevet tilføjet til tråde, mutexer, semaforer, meddelelseskøer samt operationer med hukommelse, tid og filer. Komponenter til integration med SCons og Cargo er blevet implementeret. Automatisk detektion af ARM-, AArch64- og RISC-V-målplatforme er nu tilgængelig. Procedurale makroer til initialisering og kommandoregistrering er blevet tilføjet.
- For Cortex-M mikrocontrollere er understøttelse af Open Firmware-standarden med beskrivelse af periferiudstyr via enhedstræet aktiveret.
- Tilføjet understøttelse af VirtIO 1.2 med mulighed for at bruge pakkekøer, MMIO/PCI-transport og DMA-synkronisering. VirtIO-drivere til 9P, krypto, RNG, SCMI og SCSI er blevet tilføjet. VirtIO-drivere til netværk, blokenheder, konsol, inputenheder og GPU er blevet opdateret.
- DVFS-frameworket (Dynamic Voltage and Frequency Scaling) er blevet tilføjet til dynamisk CPU- og enhedsfrekvensstyring. Integration med ARM SCMI-firmware til strømstyring er blevet muliggjort. Ventilatorstyringen er blevet forbedret.
- Tilføjet understøttelse af TEE (Trusted Execution Environment)-miljøer og RPMSG (Remote Processor Messaging)-meddelelsesmekanismen.
- Understøttelse af Unix-sockets er blevet implementeret.
- Tilføjet understøttelse af sikkerhedsmekanismerne for trådløse netværk: WPA3, EA (Enterprise Authentication), WAPI, OWE og DPP.
- Tilføjet understøttelse af PTP (Precision Time Protocol) tidssynkroniseringsprotokollen.
- Clock Time-frameworket er blevet tilføjet til at arbejde med tid, hvilket understøtter højpræcisionstimere og tidssynkronisering på tværs af flere kilder. Det nye framework erstatter de tidligere anvendte ktime-, cputime- og hwtimer-komponenter.
- 9PFS-filsystemet er blevet implementeret og bruges til at udveksle filer mellem værtsmiljøet og virtuelle maskiner.
- Implementeringen af letvægtsprocesser (lwP) understøtter nu ARM-arkitekturen og tilføjer understøttelse af vDSO-mekanismen (virtuelt dynamisk delt objekt), som gør det muligt at flytte handlere fra kernen til brugerområdet og undgå kontekstskift.
- Kernen implementerer understøttelse af 8- og 16-bit atomare operationer.
- Tilføjet understøttelse af symmetrisk multiprocessering (SMP) til XuanTie C/R-seriens RISC-V-processorer og QEMU virt64-emulatoren.
- CherryUSB USB-stak opdateret til 1.6.1.
- Tilføjet nye DM-drivere (Enhedshåndtering) til UFS, AHCI, NVMe, Ethernet, Intel HDA, joysticks og touchskærme.
Kilde: opennet.ru
