Թողարկվել է RT-Thread 5.3-ը՝ «Ինթերնեթի իրերի» սարքերի համար նախատեսված իրական ժամանակի օպերացիոն համակարգ (RTOS): Մշակվելով 2006 թվականից ի վեր չինացի մշակողների համայնքի կողմից, այն այժմ տեղափոխվել է 155 տախտակների, չիպերի և միկրոկառավարիչների վրա՝ հիմնված x86, ARM, MIPS, C-SKY, Xtensa, ARC և RISC-V ճարտարապետությունների վրա: RT-Thread (Nano)-ի մինիմալիստական կազմը պահանջում է ընդամենը 3 ԿԲ Flash և 1.2 ԿԲ RAM: Անսահմանափակ ռեսուրսների սահմանափակումներով «Ինթերնեթի իրերի» սարքերի համար հասանելի է լիարժեք տարբերակ, որը աջակցում է փաթեթների կառավարմանը, կոնֆիգուրատորներին, ցանցային փաթեթին, GUI փաթեթներին, ձայնային կառավարման համակարգերին, տվյալների բազայի կառավարմանը, ցանցային ծառայություններին և սկրիպտային շարժիչներին: Կոդը գրված է C լեզվով և տարածվում է Apache 2.0 լիցենզիայով:
Օպերացիոն համակարգը բաղկացած է երեք հիմնական շերտերից.
- Միջուկը, որն ապահովում է առաջադրանքների կատարումը իրական ժամանակում: Միջուկը տրամադրում է ունիվերսալ հիմնական պրիմիտիվներ, որոնք ներառում են այնպիսի ոլորտներ, ինչպիսիք են կողպեքների և տվյալների համաժամեցման կառավարումը, առաջադրանքների ժամանակացույցը, թելերի կառավարումը, ազդանշանների մշակումը, հաղորդագրությունների հերթերը, ժամանակաչափի կառավարումը, հիշողության կառավարումը: Սարքավորմանը հատուկ գործառույթները ներդրված են libcpu և BSP մակարդակներում, որոնք ներառում են CPU-ն աջակցելու համար անհրաժեշտ դրայվերներն ու կոդը:
- Բաղադրիչներ և ծառայություններ, որոնք աշխատում են միջուկի վրա և առաջարկում են աբստրակցիաներ, ինչպիսիք են վիրտուալ ֆայլային համակարգը, բացառությունների մշակման համակարգը, բանալիների/արժեքների պահեստը, FinSH հրամանի տողի ինտերֆեյսը, ցանցային կույտը (LwIP) և ցանցային շրջանակները, սարքերի աջակցության գրադարանները, ձայնային ենթահամակարգը, անլար կապի կույտը, Wi-Fi-ի, LoRa-ի, Bluetooth-ի, 2G/4G աջակցության բաղադրիչները: Մոդուլային ճարտարապետությունը թույլ է տալիս միացնել բաղադրիչներն ու ծառայությունները` կախված դրանց առաջադրանքներից և առկա սարքային ռեսուրսներից:
- Ծրագրային փաթեթներ. Ընդհանուր նշանակության ծրագրային բաղադրիչները և գործառույթների գրադարանները բաշխվում և տեղադրվում են փաթեթների տեսքով: Պահեստը ներկայումս ներառում է ավելի քան 450 փաթեթ՝ սկսած գրաֆիկական ինտերֆեյսներից, մուլտիմեդիա հավելվածներից և ցանցային հավելվածներից մինչև ռոբոտների կառավարման համակարգեր և մեքենայական ուսուցման վրա հիմնված պրոցեսորներ: Փաթեթները ներառում են նաև Lua, JerryScript, MicroPython, PikaScript և Rust (rtt_rust) լեզուներով ծրագրերի կատարումը կազմակերպելու շարժիչներ։

Պլատֆորմի առանձնահատկությունները.
- Աջակցվող ճարտարապետություններ.
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (աջակցվում են ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, 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 Kenndryt, bouffalo_lab, Nuclei, T-Head, HPMicro):
- ARC (SYNOPSYS)
- DSP (TI):
- C-Sky.
- x86:
- Ընդարձակելի մոդուլային ճարտարապետություն, որը թույլ է տալիս ստեղծել ռեսուրսներով սահմանափակված համակարգերի համար հարմար միջավայր (նվազագույն պահանջներն են՝ 3 ԿԲ Flash և 1.2 ԿԲ RAM):
- Աջակցեք տարբեր ստանդարտ ինտերֆեյսերի ծրագրերի մշակման համար, ինչպիսիք են POSIX, CMSIS, C++ API: RTduino շերտը մշակվում է առանձին՝ Arduino նախագծի API-ի և գրադարանների հետ համատեղելիության համար:
- Ընդարձակելի փաթեթների և պլագինների համակարգի միջոցով:
- Աջակցություն տեղեկատվության մշակման բարձր արդյունավետության հավելվածների մշակմանը:
- Էլեկտրաէներգիայի կառավարման ճկուն համակարգ, որը թույլ է տալիս սարքին ավտոմատ կերպով անցնել քնի ռեժիմի և դինամիկ կերպով կառավարել լարումն ու հաճախականությունը՝ կախված բեռից:
- Կոդավորման և գաղտնազերծման սարքավորումների աջակցություն՝ գրադարաններին տրամադրելով տարբեր ծածկագրային ալգորիթմներ:
- Միասնական ինտերֆեյս ծայրամասային սարքեր և լրացուցիչ սարքավորումներ մուտք գործելու համար:
- Վիրտուալ FS և դրայվերների առկայություն այնպիսի FS-ների համար, ինչպիսիք են FAT, UFFS, NFSv3, ROMFS և RAMFS-ը։
- Արձանագրությունների կույտ TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M և այլն:
- Համակարգ՝ թարմացումների հեռակա մատակարարման և տեղադրման համար, որը աջակցում է կոդավորմանը և թվային ստորագրությամբ ստուգումը, ընդհատված տեղադրումների վերսկսումը, ձախողումներից հետո վերականգնումը, փոփոխությունների չեղարկումը և այլն:
- Դինամիկորեն բեռնվող միջուկային մոդուլների համակարգ, որը թույլ է տալիս միջուկային բաղադրիչները կառուցել և մշակել առանձին և դինամիկ կերպով բեռնել անհրաժեշտության դեպքում։
- Աջակցություն տարբեր երրորդ կողմի փաթեթներին, ինչպիսիք են Yaffs2, SQLite, FreeModbus, Canopen և այլն:
- Հնարավորություն կա ուղղակիորեն կազմելու BSP (Board Support Package)՝ որոշակի սարքային հարթակը սատարող բաղադրիչներով, և այն բեռնելու տախտակի վրա։
- Էմուլյատորի առկայությունը (BSP qemu-vexpress-a9), որը թույլ է տալիս մշակել հավելվածներ՝ առանց իրական տախտակների օգտագործման:
- Աջակցություն տարածված կոմպիլյատորների և մշակման գործիքների, ինչպիսիք են GCC-ն, MDK Keil-ը և IAR-ը։
- Մեր սեփական ինտեգրված զարգացման միջավայրի մշակում RT-Thread Studio IDE, որը թույլ է տալիս ստեղծել և կարգաբերել հավելվածները, բեռնել դրանք տախտակների վրա և կառավարել կարգավորումները: RT-Thread-ի համար ծրագրեր մշակելու համար նախատեսված պլագինները հասանելի են նաև Eclipse-ի և VS Code-ի համար:
- Env կոնսոլի ինտերֆեյսի առկայությունը, որը հեշտացնում է նախագծերի ստեղծումը և միջավայրի կարգավորումը:
Նոր թողարկման փոփոխություններից.
- Rust լեզվով բաղադրիչների մշակման աջակցությունը ընդլայնվել է: Rust կապակցումներ են ավելացվել թելերի, մուտեքսների, սեմաֆորների, հաղորդագրությունների հերթերի, ինչպես նաև հիշողության, ժամանակի և ֆայլերի հետ գործողությունների համար: SCons-ի և Cargo-ի հետ ինտեգրման բաղադրիչներ են ներդրվել: ARM, AArch64 և RISC-V թիրախային հարթակների ավտոմատ հայտնաբերումն այժմ հասանելի է: Ավելացվել են նախնականացման և հրամանների գրանցման ընթացակարգային մակրոներ:
- Cortex-M միկրոկառավարիչների համար միացված է Open Firmware ստանդարտի աջակցությունը՝ Device Tree-ի միջոցով ծայրամասային սարքերի նկարագրությամբ։
- Ավելացվել է VirtIO 1.2-ի աջակցությունը՝ փաթեթների հերթեր, MMIO/PCI փոխադրումներ և DMA համաժամեցում օգտագործելու հնարավորությամբ: Ավելացվել են VirtIO դրայվերներ 9P, crypto, RNG, SCMI և SCSI-ի համար: Թարմացվել են VirtIO դրայվերները ցանցի, բլոկային սարքերի, կոնսոլի, մուտքային սարքերի և GPU-ի համար:
- DVFS (Dynamic Voltage and Frequency Scaling) շրջանակը ավելացվել է պրոցեսորի և սարքի հաճախականության դինամիկ կառավարման համար: Ապահովվել է ARM SCMI ներկառուցված ծրագրի հետ ինտեգրում էներգիայի կառավարման համար: Բարելավվել է օդափոխիչի կառավարումը:
- Ավելացվել է TEE (Trusted Execution Environment) միջավայրերի և RPMSG (Remote Processor Messaging) հաղորդագրությունների մեխանիզմի աջակցությունը։
- Աջակցություն է ներդրվել Unix սոքեթների համար։
- Ավելացվել է աջակցություն անլար ցանցի անվտանգության մեխանիզմների համար՝ WPA3, EA (Enterprise Authentication), WAPI, OWE և DPP:
- Ավելացվել է PTP (Precision Time Protocol) ժամանակի համաժամեցման արձանագրության աջակցությունը։
- Ժամանակի հետ աշխատելու համար ավելացվել է Clock Time framework-ը՝ աջակցելով բարձր ճշգրտության ժամանակաչափերին և ժամանակի համաժամեցմանը բազմաթիվ աղբյուրների միջև: Նոր framework-ը փոխարինում է նախկինում օգտագործվող ktime, cputime և hwtimer բաղադրիչներին:
- Իրականացվել է 9PFS ֆայլային համակարգ, որն օգտագործվում է հոսթ միջավայրի և վիրտուալ մեքենաների միջև ֆայլեր փոխանակելու համար։
- Թեթև պրոցեսների (lwP) իրականացումն այժմ աջակցում է ARM ճարտարապետությանը և ավելացնում է vDSO (վիրտուալ դինամիկ համօգտագործվող օբյեկտ) մեխանիզմի աջակցությունը, որը թույլ է տալիս մշակողներին տեղափոխել միջուկից օգտատիրոջ տարածք և խուսափել համատեքստային անջատումներից։
- Միջուկը աջակցում է 8 և 16-բիթային ատոմային գործողություններին։
- Ավելացվել է սիմետրիկ բազմամշակման (SMP) աջակցություն XuanTie C/R շարքի RISC-V պրոցեսորների և QEMU virt64 էմուլյատորի համար։
- CherryUSB USB փաթեթը թարմացվել է 1.6.1-ի։
- Ավելացվել են նոր DM դրայվերներ (Սարքերի կառավարիչ) UFS, AHCI, NVMe, Ethernet, Intel HDA, ջոյսթիքերի և սենսորային էկրանների համար։
Source: opennet.ru
