RT-Thread 5.3, reaaliaikainen käyttöjärjestelmä (RTOS) esineiden internet -laitteille, on julkaistu. Kiinalaisten kehittäjien yhteisön kehittämä järjestelmä on ollut käytössä vuodesta 2006 lähtien, ja se on nyt portattu 155 x86-, ARM-, MIPS-, C-SKY-, Xtensa-, ARC- ja RISC-V-arkkitehtuureihin perustuvalle emolevylle, sirulle ja mikrokontrollerille. Minimalistinen RT-Thread (Nano) -versio vaatii vain 3 kt Flash-muistia ja 1.2 kt RAM-muistia. Rajattomilla resurssirajoituksilla varustetuille IoT-laitteille on saatavilla täysin varusteltu versio, joka tukee pakettienhallintaa, konfiguraattoreita, verkkopinoa, graafisia käyttöliittymäpaketteja, ääniohjausjärjestelmiä, tietokannan hallintajärjestelmää, verkkopalveluita ja komentosarjoja. Koodi on kirjoitettu C-kielellä ja jaettu Apache 2.0 -lisenssillä.
Käyttöjärjestelmä koostuu kolmesta peruskerroksesta:
- Ydin, joka suorittaa tehtäviä reaaliajassa. Ydin tarjoaa yleiset ydinprimitiivit, jotka kattavat sellaiset alueet kuin lukituksen ja tietojen synkronoinnin hallinnan, tehtävien ajoituksen, säikeiden hallinnan, signaalinkäsittelyn, viestijonon, ajastimen hallinnan ja muistinhallinnan. Laitteistokohtaiset ominaisuudet on toteutettu libcpu- ja BSP-tasolla, jotka sisältävät tarvittavat ajurit ja koodin CPU:ta tukemaan.
- Komponentit ja palvelut, jotka toimivat ytimen päällä ja tarjoavat abstraktioita, kuten virtuaalinen tiedostojärjestelmä, poikkeusten käsittelyjärjestelmä, avain/arvovarasto, FinSH-komentoriviliittymä, verkkopino (LwIP) ja verkkokehykset, laitetuen kirjastot, äänialijärjestelmä, langaton pino, komponentit tukevat Wi-Fiä, LoRa, Bluetooth, 2G/4G. Modulaarisen arkkitehtuurin avulla voit yhdistää komponentteja ja palveluita tehtävistäsi ja käytettävissä olevista laitteistoresursseista riippuen.
- Ohjelmistopaketit. Yleiskäyttöiset ohjelmistokomponentit ja toimintokirjastot jaetaan ja asennetaan pakettien muodossa. Arkisto sisältää tällä hetkellä yli 450 pakettia graafisista käyttöliittymistä, multimedia- ja verkkosovelluksista robottiohjausjärjestelmiin ja koneoppimisprosessoreihin. Paketit sisältävät myös moottoreita ohjelmien suorittamisen järjestämiseen Lua-, JerryScript-, MicroPython-, PikaScript- ja Rust-kielillä (rtt_rust).

Alustan ominaisuudet:
- Arkkitehtuurin tuki:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (mikro-ohjaimet valmistajilta kuten ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP ovat tuettuja).
- 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-taivas.
- x86.
- Laajentuva modulaarinen arkkitehtuuri, jonka avulla voit luoda ympäristön, joka sopii järjestelmille, joilla on rajalliset resurssit (minimivaatimukset - 3 kt Flash ja 1.2 kt RAM).
- Tuki erilaisille standardiliittymille ohjelmien kehittämiseen, kuten POSIX, CMSIS, C++ API. RTduino-kerrosta kehitetään erikseen yhteensopivaksi Arduino-projektin API:n ja kirjastojen kanssa.
- Laajennettavissa pakettien ja lisäosien järjestelmän kautta.
- Tuki tehokkaan tiedonkäsittelyn sovelluksen kehittämiseen.
- Joustava virranhallintajärjestelmä, joka asettaa laitteen automaattisesti lepotilaan ja hallitsee dynaamisesti jännitettä ja taajuutta kuormituksesta riippuen.
- Laitteistotuki salaukselle ja salauksen purkamiselle, joka tarjoaa kirjastoille erilaisia salausalgoritmeja.
- Yhtenäinen käyttöliittymä oheislaitteiden ja lisälaitteiden käyttöön.
- Virtuaalinen FS ja FS-ajurien saatavuus, kuten FAT, UFFS, NFSv3, ROMFS ja RAMFS.
- Protokollapino kohteelle TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M jne.
- Järjestelmä päivitysten etätoimitukseen ja -asennukseen, joka tukee salausta ja digitaalisella allekirjoituksella varmennusta, keskeytetyn asennuksen jatkamista, häiriöstä toipumista, muutosten peruuttamista jne.
- Dynaamisesti ladattavien ydinmoduulien järjestelmä, jonka avulla voit rakentaa ja kehittää kernelkomponentteja erikseen ja ladata niitä dynaamisesti tarvittaessa.
- Tuki useille kolmansien osapuolien paketeille, kuten Yaffs2, SQLite, FreeModbus, Canopen jne.
- Mahdollisuus koota suoraan BSP-paketti (Board Support Package) komponenteilla, jotka tukevat tiettyä laitteistoalustaa, ja ladata se levylle.
- Emulaattorin (BSP qemu-vexpress-a9) läsnäolo, jonka avulla voit kehittää sovelluksia ilman oikeita levyjä.
- Tuki yleisille kääntäjille ja kehitystyökaluille, kuten GCC, MDK Keil ja IAR.
- Oman integroidun kehitysympäristömme RT-Thread Studio IDE kehittäminen, jonka avulla voit luoda ja korjata sovelluksia, ladata niitä levyille ja hallita asetuksia. RT-Thread-kehityslaajennukset ovat saatavilla myös Eclipselle ja VS Codelle.
- Env-konsolirajapinnan läsnäolo, joka yksinkertaistaa projektien luomista ja ympäristön määrittämistä.
Uuden julkaisun muutoksista:
- Rust-kielellä kehitettyjen komponenttien tukea on laajennettu. Rust-sidoksia on lisätty säikeille, mutekseille, semaforeille, viestijonoille sekä muistin, ajan ja tiedostojen käsittelyyn. SConsin ja Cargon kanssa integroitavat komponentit on toteutettu. ARM-, AArch64- ja RISC-V-kohdealustojen automaattinen tunnistus on nyt saatavilla. Alustus- ja komentojen rekisteröintiproseduraaliset makrot on lisätty.
- Cortex-M-mikrokontrollereissa on käytössä Open Firmware -standardin tuki, jossa oheislaitteiden kuvaus on käytössä laitepuun kautta.
- Lisätty tuki VirtIO 1.2:lle, joka mahdollistaa pakettijonojen, MMIO/PCI-siirtojen ja DMA-synkronoinnin käytön. VirtIO-ajurit 9P:lle, kryptolle, RNG:lle, SCMI:lle ja SCSI:lle on lisätty. VirtIO-ajurit verkolle, lohkolaitteille, konsolille, syöttölaitteille ja näytönohjaimelle on päivitetty.
- DVFS (Dynamic Voltage and Frequency Scaling) -kehys on lisätty dynaamista suorittimen ja laitteen taajuuden hallintaa varten. Integrointi ARM SCMI -laiteohjelmistoon virranhallintaa varten on tehty. Tuulettimen hallintaa on parannettu.
- Lisätty tuki TEE (Trusted Execution Environment) -ympäristöille ja RPMSG (Remote Processor Messaging) -viestimekanismille.
- Tuki Unix-socketeille on toteutettu.
- Lisätty tuki langattoman verkon suojausmekanismeille WPA3, EA (Enterprise Authentication), WAPI, OWE ja DPP.
- Lisätty tuki PTP (Precision Time Protocol) -aikasynkronointiprotokollalle.
- Kellonajan käsittelyyn on lisätty Clock Time -kehys, joka tukee tarkkoja ajastimia ja ajan synkronointia useiden lähteiden välillä. Uusi kehys korvaa aiemmin käytetyt ktime-, cputime- ja hwtimer-komponentit.
- 9PFS-tiedostojärjestelmä on otettu käyttöön tiedostojen vaihtamiseen isäntäympäristön ja virtuaalikoneiden välillä.
- Kevyiden prosessien (lwP) toteutus tukee nyt ARM-arkkitehtuuria ja lisää tuen vDSO-mekanismille (virtual dynamic shared object), jonka avulla käsittelijät voidaan siirtää ytimestä käyttäjätilaan ja välttää kontekstikytkimiä.
- Ydin tukee 8- ja 16-bittisiä atomioperaatioita.
- Lisätty tuki symmetriselle moniprosessoinnille (SMP) XuanTie C/R -sarjan RISC-V-prosessoreille ja QEMU virt64 -emulaattorille.
- CherryUSB USB-pino päivitetty versioon 1.6.1.
- Lisätty uudet DM-ajurit (Laitehallinta) UFS:lle, AHCI:lle, NVMe:lle, Ethernetille, Intel HDA:lle, joystickeille ja kosketusnäytöille.
Lähde: opennet.ru
