ΠΠΎΡΠ»Π΅ Π³ΠΎΠ΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π²ΡΠΏΡΡΠΊ RT-Thread 5.1, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (RTOS) Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°-Π²Π΅ΡΠ΅ΠΉ. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Ρ 2006 Π³ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ 154 ΠΏΠ»Π°Ρ, ΡΠΈΠΏΠΎΠ² ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ x86, ARM, MIPS, Π‘-SKY, Xtensa, ARC ΠΈ RISC-V. ΠΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½Π°Ρ ΡΠ±ΠΎΡΠΊΠ° RT-Thread (Nano) ΡΡΠ΅Π±ΡΠ΅Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Π³ΠΎ 3 ΠΠ Flash ΠΈ 1.2 ΠΠ ΠΠΠ£. ΠΠ»Ρ IoT-ΡΡΡΡΠΎΠΉΡΡΠ², ΡΠΈΠ»ΡΠ½ΠΎ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ Π² ΡΠ΅ΡΡΡΡΠ°Ρ , ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΎΡΡ, ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ΅ΠΊ, ΠΏΠ°ΠΊΠ΅ΡΡ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠΈΡΡΠ΅ΠΌΡ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π‘Π£ΠΠ, ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ Π΄Π²ΠΈΠΆΠΊΠΎΠ² Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ². ΠΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0.
Ny rafitra miasa dia misy sosona fototra telo:
- Kernel mamela ny asa hotanterahina amin'ny fotoana tena izy. Ny kernel dia manome primitives fototra miompana amin'ny sehatra toy ny fitantanana hidin-trano sy ny fampifanarahana ny angon-drakitra, ny fandaharam-potoanan'ny asa, ny fitantanana ny kofehy, ny fikarakarana famantarana, ny filaharana hafatra, ny fitantanana ny famerana ary ny fitantanana fahatsiarovana. Ny endri-javatra manokana amin'ny Hardware dia ampiharina amin'ny ambaratonga libcpu sy BSP, izay ahitana ny mpamily sy kaody ilaina hanohanana ny CPU.
- Ireo singa sy serivisy izay mihazakazaka eo an-tampon'ny kernel ary manolotra abstractions toy ny rafitra virtoaly virtoaly, rafitra fitantanana miavaka, fitahirizana fanalahidy / sanda, interface tsara andalana FinSH, tamba-jotra (LwIP) ary rafitra tambajotra, tranomboky fanohanana fitaovana, subsystem audio, Wireless stack, singa hanohanana Wi-Fi, LoRa, Bluetooth, 2G/4G. Ny rafitra modular dia ahafahanao mampifandray ireo singa sy serivisy miankina amin'ny asanao sy ny loharanon-karena misy.
- Fonosana rindrambaiko. Ny singa rindrambaiko amin'ny tanjona ankapobeny sy ny tranomboky miasa dia zaraina sy apetraka amin'ny endrika fonosana. Ny tahiry amin'izao fotoana izao dia misy fonosana mihoatra ny 450, manolotra ny zava-drehetra manomboka amin'ny interface an-tsary, fampiharana multimedia ary rindranasa amin'ny tambajotra mankany amin'ny rafitra fanaraha-maso robot sy processeur mifototra amin'ny milina. Ny fonosana koa dia manome motera amin'ny fandaminana ny fanatanterahana ny programa amin'ny fiteny Lua, JerryScript, MicroPython, PikaScript ary Rust (rtt_rust).
Endriky ny sehatra:
- Fanohanana Architecture:
- ARM Cortex-M0 / M0 + / M3 / M4 / M7 / M23 / M33 (microcontrollers avy amin'ny mpanamboatra toa ny ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP dia tohanana).
- 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.
- Extensible modular architecture izay ahafahanao mamorona tontolo mifanaraka amin'ny rafitra misy loharanon-karena voafetra (fangatahana kely indrindra - Flash 3 KB ary RAM 1.2 KB).
- Fanohanana interface tsara isan-karazany ho an'ny fampandrosoana ny programa, toy ny POSIX, CMSIS, C++ API. Ny sosona RTduino dia novolavolaina misaraka mba hifanaraka amin'ny tetikasa Arduino API sy ny tranomboky.
- Ny mety ho fanitarana amin'ny alΓ lan'ny rafitra fonosana sy singa plug-in.
- Fanohanana ny fampivoarana ny fampiharana ho an'ny fanodinana fampahalalana mahomby.
- Ny rafi-pitantanana herinaratra flexible izay ahafahanao mametraka ho azy amin'ny fomba fatoriana ny fitaovana ary mifehy ny voltora sy ny matetika arakaraka ny entana.
- Fanohanana fitaovana ho an'ny encryption sy decryption, fanomezana tranomboky misy algorithm kriptografika isan-karazany.
- Interface mitambatra ho an'ny fidirana amin'ny fitaovana periferika sy fitaovana fanampiny.
- Rafitra fisie virtoaly sy ny fisian'ny mpamily ho an'ny rafitra rakitra toy ny FAT, UFFS, NFSv3, ROMFS ary RAMFS.
- Stack protocol ho an'ny TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M, sns.
- Rafitra fanaterana lavitra sy fametrahana fanavaozam-baovao izay manohana ny fanafenana sy fanamarinana amin'ny fampiasana sonia nomerika, mamerina ny fametrahana tapaka, miverina amin'ny tsy fahombiazana, mamerina ny fanovana, sns.
- Rafitra misy maody kernel feno dynamically izay ahafahanao manangana sy mamolavola ireo singa kernel, ary mampiditra azy ireo amin'ny fomba mavitrika rehefa ilaina izany.
- Manohana fonosana antoko fahatelo isan-karazany, toy ny Yaffs2, SQLite, FreeModbus, Canopen, sns.
- Ny fahafahana manangona mivantana ny fonosana BSP (Board Support Package) miaraka amin'ireo singa hanohanana sehatra hardware manokana, ary hampiditra izany eo amin'ny solaitrabe.
- Ny fisian'ny emulator (BSP qemu-vexpress-a9), izay ahafahanao mamolavola rindranasa tsy mampiasa boards tena izy.
- Fanohanana ireo mpamoron-kira mahazatra sy fitaovana fampandrosoana toy ny GCC, MDK Keil ary IAR.
- Fampivoarana ny tontolo iainantsika manokana RT-Thread Studio IDE, izay ahafahanao mamorona sy mi-debug ny rindranasa, mametraka azy ireo eo amin'ny solaitrabe, ary mitantana ny fandrindrana. Ny plugins fampandrosoana ho an'ny RT-Thread dia misy ihany koa ho an'ny Eclipse sy VS Code.
- Ny fisian'ny Env console interface tsara, izay manamora ny famoronana tetikasa sy ny fametrahana ny tontolo iainana.
Anisan'ireo fanovana tamin'ny famoahana vaovao:
- Π RT-Smart, Π³ΠΈΠ±ΡΠΈΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π° Π±Π°Π·Π΅ RT-Thread, ΠΎΡΠ΄Π΅Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΡΠ΄ΡΠ°, Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² epoll, eventfd, signalfd, timerfd ΠΈ select. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΌΡΠ»ΡΡΠΎΡΠ° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΡΡΠΎΠΉΡΡΠ² DFZU2EG MPSoC ΠΈ cv181x-riscv.
- Π RTduino, ΡΠ»ΠΎΠΉ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Arduino, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ»Π°Ρ raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark.
- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ssh, sftp, weston ΠΈ vim.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΠ²ΡΡ ΠΏΠ»Π°Ρ ΠΈ ΡΠΈΠΏΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ 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).
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² Π·Π°Π΄Π°Ρ ΠΈ CPU. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ° Π΄Π»Ρ Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° rt_sched.
- ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ malloc.
- ΠΠ»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ ARM64 ΠΈ RV64 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ (backtrace) ΡΠ΄ΡΠ°.
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π½ΠΎΠ²ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ².
- Π virtio-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ qemu-virt64-aarch64 ΠΈ qemu-virt64-riscv Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° SDL2.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² clk.
- Π DFS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ exfat. Π―Π΄ΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€Π‘ dfsv2.
- Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° TTY-ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠ².
- Π ΡΠΈΡΡΠ΅ΠΌΠ΅ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ»Π°Π³ΠΎΠ² O_DIRECT ΠΈ O_SYNC.
- Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² lwP (Lightweight Process) ΡΡΠ½ΠΊΡΠΈΡ wp_new Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° lwp_create. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ sys_setitimer.
- Π ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ MM Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ rt_aspace_mremap_range.
- Π Libcpu Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ARM Cortex-M85 ΠΈ Cortex-R52
Source: opennet.ru