Real-time operating system RT-Thread 5.1 er blevet offentliggjort

Efter et års udvikling er RT-Thread 5.1 nu tilgængelig, et realtidsoperativsystem (RTOS) til Internet of Things-enheder. Systemet har været udviklet siden 2006 af et fællesskab af kinesiske udviklere og er i øjeblikket porteret til 154 platforme, chips og mikrocontrollere baseret på x86, ARM, MIPS, C-SKY, Xtensa, ARC og RISC-V arkitekturer. Den minimalistiske version af RT-Thread (Nano) kræver kun 3 KB Flash og 1,2 KB RAM at køre. For IoT-enheder, der ikke er stærkt begrænsede i ressourcer, tilbydes en fuldfunktionel version, der understøtter pakkehåndtering, konfigurationer, netværksstak, implementering af grafiske interfacepakker, stemmeaktiverede systemer, databaser, netværkstjenester, og scriptsystemer. Koden er skrevet i C og distribueres under Apache 2.0 licensen.

Operativsystemet består af tre grundlæggende lag:

  • Kernen, der muliggør udførelse af opgaver i realtid. Kernen tilbyder universelle grundlæggende primitive, der dækker områder som låshåndtering og datasynkronisering, opgaveplanlægning, trådadministration, signalbehandling, meddelelseskøer, timerstyring og hukommelsesstyring. Hardware-specifikke funktioner er implementeret på libcpu- og BSP-niveauet, som inkluderer nødvendige drivere og kode til understøttelse af CPU.
  • Komponenter og tjenester, der arbejder oven på kernen og tilbyder sådanne abstraktioner som virtuel filsystem, undtagelseshåndteringssystem, lager i nøgle/værdi-format, kommandolinjegrænseflade FinSH, netværksstak (LwIP) og netværksrammer, biblioteker til støtte for enheder, lydundersystem, trådløs stak, komponenter til støtte for Wi-Fi, LoRa, Bluetooth, 2G/4G. Den modulære arkitektur muliggør tilslutning af komponenter og tjenester afhængigt af ens opgaver og tilgængelige hardware-ressourcer.
  • Programmer, der er tilgængelige i pakker. Funktionelle komponenter og funktionsbiblioteker distribueres og installeres i form af pakker. I øjeblikket inkluderer repository over 450 pakker, der tilbyder alt fra grafiske grænseflader, multimediaapplikationer og netværksapplikationer til robotstyringssystemer og machine learning-baserede håndterere. Pakkerne indeholder også motorer til at organisere programudførelse på sprog som Lua, JerryScript, MicroPython, PikaScript og Rust (rtt_rust).

Real-time operating system RT-Thread 5.1 er blevet offentliggjort

Platformfunktioner:

  • Understøttelse af arkitekturer:
    • ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (understøttede mikrocontrollere omfatter producenter som ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevice, 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, HPMicro).
    • ARC (SYNOPSYS)
    • DSP (TI).
    • C-Sky.
    • x86.
  • Udvidelig modulær arkitektur, der muliggør oprettelse af et miljø, der er velegnet til systemer med begrænsede ressourcer (minimumskrav — 3 KB Flash og 1,2 KB RAM).
  • Understøttelse af forskellige standardgrænseflader til softwareudvikling, såsom POSIX, CMSIS, C++ API. En separat lag RTduino udvikles for at sikre kompatibilitet med API'er og biblioteker fra Arduino-projektet.
  • Mulighed for udvidelse gennem et pakke- og komponentbaseret system.
  • Understøttelse af applikationsudvikling til højtydende databehandling.
  • Fleksibel strømbesparende styringssystem, der muliggør automatisk at sætte enheder i dvaletilstand og dynamisk styre spænding og frekvens afhængigt af belastningen.
  • Understøttelse af hardware til kryptering og dekryptering, levering af biblioteker med forskellige kryptografiske algoritmer.
  • Standardiseret grænseflade for adgang til perifere enheder og ekstra udstyr.
  • Virtuel filsystem og tilgængelighed af drivere for filsystemer som FAT, UFFS, NFSv3, ROMFS og RAMFS.
  • Protokolstack for 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 afbrudt installation, genopretning efter fejl, tilbagerulning af ændringer osv.
  • Et system med dynamisk indlæselige kernelmoduler, der muliggør separat bygning og udvikling af kernelkomponenter, og dynamisk indlæsning af disse, når behovet opstår.
  • Understøttelse af forskellige tredjepartspakker, såsom Yaffs2, SQLite, FreeModbus, Canopen osv.
  • Mulighed for direkte kompilering af BSP-pakken (Board Support Package) med komponenter til støtte for en bestemt hardwareplatform og dens indlæsning på boardet.
  • Tilstedeværelsen af en emulator (BSP qemu-vexpress-a9), der muliggør udvikling af applikationer uden brug af fysiske boards.
  • Understøttelse af standardkompilatorer og udviklingsværktøjer som GCC, MDK Keil og IAR.
  • Udviklingen af et eget integreret udviklingsmiljø, RT-Thread Studio IDE, der gør det muligt at skabe og debugge applikationer, indlæse dem på boards og administrere indstillinger. Plugins til udvikling af programmer til RT-Thread er også tilgængelige for Eclipse og VS Code.
  • Tilstedeværelsen af et konsolinterface Env, der forenkler oprettelsen af projekter og konfigurationen af miljøet.

Blandt ændringerne i den nye udgave:

  • RT-Smart, et hybridoperativsystem baseret på RT-Thread, der adskiller applikationer fra kernen, inkluderer som standard support for mekanismerne epoll, eventfd, signalfd, timerfd og select. En terminalemulator under-system er implementeret. Support for DFZU2EG MPSoC og cv181x-riscv-enheder er tilføjet.
  • I RTduino, et lag for at sikre kompatibilitet med Arduino-økosystemet, er support for raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark plader tilføjet.
  • Tredjeparts komponenter som ssh, sftp, weston og vim er blevet opdateret.
  • Support for nye plader og chips så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, frdm-mcxa153) er blevet tilføjet.
  • Ydeevnen af opgaveplanlæggere og CPU er blevet optimeret. Et lag til abstraktion af rt_sched-planlæggeren er blevet tilføjet.
  • Optimering af ydeevnen på multicore-systemer er blevet gennemført.
  • Mulighed for at tilslutte håndterere til hukommelsesallokeringsoperationer malloc er blevet givet.
  • Support for kernel backtrace er blevet implementeret for ARM64- og RV64-arkitekturer.
  • Overgangen til en ny model for enhedsdrivere er fortsat.
  • Support for SDL2 er blevet tilføjet i virtio-drivere qemu-virt64-aarch64 og qemu-virt64-riscv.
  • Et framework til udvikling af clk-drivere er blevet tilføjet.
  • I DFS er konfigurationen exfat blevet tilføjet. Kernen er som standard blevet oversat til at bruge FS dfsv2.
  • Support for TTY-terminaler er blevet forbedret.
  • Systemen for input/output har fået tilføjet støtte til flagene O_DIRECT og O_SYNC.
  • I implementeringen af letvægtsprocesser lwP (Lightweight Process) er funktionen wp_new blevet erstattet af lwp_create. Funktionen sys_setitimer er blevet tilføjet.
  • I MM-hukommelseshåndteringen er der tilføjet støtte til hukommelsesreservationsfunktioner, og funktionen rt_aspace_mremap_range er blevet implementeret.
  • I Libcpu er der tilføjet støtte til processorerne ARM Cortex-M85 og Cortex-R52.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster