RT-Thread 5.1 realtidsoperativsystem publicerat

Efter ett års utveckling finns nu RT-Thread 5.1, ett realtidsoperativsystem (RTOS) för Internet of Things-enheter, tillgängligt. Systemet har utvecklats sedan 2006 av en community av kinesiska utvecklare och är för närvarande portat till 154 kort, chip och mikrokontroller baserade på x86-, ARM-, MIPS-, C-SKY-, Xtensa-, ARC- och RISC-V-arkitekturer. Den minimalistiska RT-Thread (Nano)-versionen kräver endast 3 KB Flash och 1.2 KB RAM för att fungera. För IoT-enheter som inte är särskilt resursbegränsade erbjuds en fullfjädrad version som stöder pakethantering, konfiguratorer, en nätverksstack, paket med en grafisk gränssnittsimplementering, ett röststyrningssystem, ett DBMS, nätverkstjänster och skriptmotorer. Koden är skriven i C och distribueras under Apache 2.0-licensen.

Operativsystemet består av tre grundläggande lager:

  • En kärna som gör att uppgifter kan utföras i realtid. Kärnan tillhandahåller generiska kärnprimitiver som täcker områden som låshantering och datasynkronisering, uppgiftsschemaläggning, trådhantering, signalhantering, meddelandekö, timerhantering och minneshantering. Hårdvaruspecifika funktioner implementeras på libcpu- och BSP-nivåerna, som inkluderar nödvändiga drivrutiner och kod för att stödja processorn.
  • Komponenter och tjänster som körs ovanpå kärnan och erbjuder abstraktioner såsom ett virtuellt filsystem, undantagshanteringssystem, nyckel/värdelagring, FinSH kommandoradsgränssnitt, nätverksstack (LwIP) och nätverksramverk, bibliotek för enhetsstöd, ljudundersystem, trådlös stack, komponenter för att stödja Wi-Fi, LoRa, Bluetooth, 2G/4G. Modulär arkitektur låter dig ansluta komponenter och tjänster beroende på dina uppgifter och tillgängliga hårdvaruresurser.
  • Programvarupaket. Programvarukomponenter och funktionsbibliotek för allmänna ändamål distribueras och installeras i form av paket. Förvaret innehåller för närvarande mer än 450 paket, som erbjuder allt från grafiska gränssnitt, multimediaapplikationer och nätverksapplikationer till robotstyrsystem och maskininlärningsbaserade processorer. Paketen tillhandahåller även motorer för att organisera exekveringen av program på språken Lua, JerryScript, MicroPython, PikaScript och Rust (rtt_rust).

RT-Thread 5.1 realtidsoperativsystem publicerat

Plattformsfunktioner:

  • Arkitekturstöd:
    • ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (mikrokontroller från tillverkare som ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP stöds).
    • 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-Sky.
    • x86.
  • Utökningsbar modulär arkitektur som låter dig skapa en miljö som lämpar sig för system med begränsade resurser (minimikrav - 3 KB Flash och 1.2 KB RAM).
  • Stöd för olika standardgränssnitt för programutveckling, såsom POSIX, CMSIS, C++ API. RTduino-lagret utvecklas separat för kompatibilitet med Arduino-projektets API och bibliotek.
  • Möjlighet till expansion genom ett system av paket och plug-in komponenter.
  • Stöd för applikationsutveckling för högpresterande informationsbehandling.
  • Flexibelt strömhanteringssystem som låter dig automatiskt försätta enheten i viloläge och dynamiskt styra spänning och frekvens beroende på belastningen.
  • Hårdvarustöd för kryptering och dekryptering, tillhandahållande av bibliotek med olika kryptografiska algoritmer.
  • Enhetligt gränssnitt för åtkomst till kringutrustning och ytterligare utrustning.
  • Virtuella filsystem och tillgänglighet av drivrutiner för 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, etc.
  • Ett system för fjärrleverans och installation av uppdateringar som stöder kryptering och verifiering med hjälp av en digital signatur, återuppta en avbruten installation, återställa efter ett fel, återställa ändringar, etc.
  • Ett system med dynamiskt laddade kärnmoduler som låter dig bygga och utveckla kärnkomponenter separat, och dynamiskt ladda dem när det behövs.
  • Stöder olika tredjepartspaket, såsom Yaffs2, SQLite, FreeModbus, Canopen, etc.
  • Möjligheten att direkt kompilera ett BSP-paket (Board Support Package) med komponenter för att stödja en specifik hårdvaruplattform och ladda det på kortet.
  • Tillgängligheten av en emulator (BSP qemu-vexpress-a9), som låter dig utveckla applikationer utan att använda riktiga kort.
  • Stöd för vanliga kompilatorer och utvecklingsverktyg som GCC, MDK Keil och IAR.
  • Utveckling av vår egen integrerade utvecklingsmiljö RT-Thread Studio IDE, som låter dig skapa och felsöka applikationer, ladda dem på kort och hantera inställningar. Utvecklingsplugins för RT-Thread är också tillgängliga för Eclipse och VS Code.
  • Tillgänglighet för Env-konsolens gränssnitt, vilket förenklar skapandet av projekt och ställer in miljön.

Bland ändringarna i den nya utgåvan:

  • RT-Smart, ett hybridoperativsystem baserat på RT-Thread som separerar applikationer från kärnan, inkluderar stöd för epoll, eventfd, signalfd, timerfd och select-mekanismer som standard. Ett terminalemulatorsystem har implementerats. Stöd för DFZU2EG MPSoC- och cv181x-riscv-enheter har lagts till.
  • RTduino, ett lager för att säkerställa kompatibilitet med Arduinos ekosystem, har lagt till stöd för raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark boards.
  • Uppdaterade tredjepartskomponenter som ssh, sftp, weston och vim.
  • Lade till stöd för nya kort och kretsar som HPMicro RISC-V, STM32 Nucleo, Adafruit Metro M4, Seeed Wio-Terminal, ST (stm32L431_tencentos, stm32h7s7-disco, stm32f407-lckfb-skystar, stm32h503-st-nucleo), Renesas (ek-ra8m1, ek-ra8d1, ra8d1-vision-board), AT32 (at32f402-start, at32f405-start), HT32 (ht32f52352, ht32f12366, AVR32 at32uc3a0256, at32uc3b0256), CVITEK (c906_little, cv18xx_risc-v), WCH (yd-ch32v307vct6), HC32 (ev_hc32f4a0_lqfp176, ev_hc32f460_lqfp100_v2), (ev_hc32f448_lqfp80, GD32 gd32407v-lckfb), NXP (frdm-mcxn947, fradm-mcxn153).
  • Optimerade arbetet med uppgiftsschemaläggare och CPU. Lade till ett lager för att abstrahera rt_sched-schemaläggaren.
  • Optimering av arbetet med flerkärniga system har genomförts.
  • Tillhandahöll möjligheten att koppla hanterare till malloc-minnesallokeringsoperationer.
  • För ARM64- och RV64-arkitekturer har stöd för kärnspårning implementerats.
  • Övergången till den nya drivrutinsmodellen fortsätter.
  • SDL64-stöd har lagts till i drivrutinerna qemu-virt64-aarch64 och qemu-virt2-riscv virtio.
  • Lade till ramverk för att utveckla clk-drivrutiner.
  • Lade till exfat-konfiguration till DFS. Kärnan har bytts till att använda dfsv2 FS som standard.
  • Förbättrat stöd för TTY-terminaler.
  • I/O-systemet stöder nu flaggorna O_DIRECT och O_SYNC.
  • I implementeringen av lättviktsprocesser lwP (Lightweight Process) har funktionen wp_new ersatts av lwp_create. Funktionen sys_setitimer har lagts till.
  • Stöd för minnesreservation har lagts till i MM-minneshanteraren och funktionen rt_aspace_mremap_range har implementerats.
  • Libcpu lägger till stöd för ARM Cortex-M85 och Cortex-R52-processorer

Källa: opennet.ru

Lägg en kommentar