Internet of Things qurilmalari uchun real vaqt rejimida ishlaydigan operatsion tizim (RTOS) bo'lgan RT-Thread 5.0 chiqarildi. 2006-yildan beri xitoylik dasturchilar hamjamiyati tomonidan ishlab chiqilgan bo'lib, u hozirda x86, ARM, MIPS, C-SKY, Xtensa, ARC va RISC-V arxitekturalariga asoslangan deyarli 200 ta plata, chip va mikrokontrollerga o'tkazildi. RT-Thread (Nano) ning minimalist versiyasi atigi 3 KB Flash va 1.2 KB RAMni talab qiladi. Cheksiz resurs cheklovlariga ega IoT qurilmalari uchun paketlarni boshqarish, konfiguratorlar, tarmoq steki, GUI paketlari, ovozli boshqaruv tizimlari, ma'lumotlar bazasi ma'lumotlar bazasi, tarmoq xizmatlari va skript dvigatellarini qo'llab-quvvatlaydigan to'liq xususiyatli versiya mavjud. Kod C tilida yozilgan va Apache 2.0 litsenziyasi ostida tarqatilgan.
Platformaning xususiyatlari:
- Arxitekturani qo'llab-quvvatlash:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP kabi ishlab chiqaruvchilarning mikrokontrollerlari qo'llab-quvvatlanadi).
- ARM Cortex-R4.
- ARM Cortex-A8/A9 (NXP).
- ARM7 (Samsung).
- ARM9 (Allwinner, Xilinx, GOKE).
- ARM11 (Fulxan).
- MIPS32 (Loongson, Ingenic).
- RISC-V RV32E/RV32I[F]/RV64[D] (sitive, Canaan Kendryt, bouffalo_lab, Nuclei, T-Head).
- ARC (SYNOPSYS)
- DSP (TI).
- C-Sky.
- x86.
- Cheklangan resurslarga ega tizimlar uchun mos muhit yaratish imkonini beruvchi kengaytiriladigan modulli arxitektura (minimal talablar - 3 KB Flash va 1.2 KB RAM).
- POSIX, CMSIS, C++ API kabi dastur ishlab chiqish uchun turli standart interfeyslarni qo'llab-quvvatlash. RTduino qatlami Arduino loyihasi API va kutubxonalar bilan muvofiqligi uchun alohida ishlab chiqilmoqda.
- Paketlar va plagin komponentlari tizimi orqali kengaytirish imkoniyati.
- Yuqori samarali axborotni qayta ishlash uchun ilovalarni ishlab chiqishni qo'llab-quvvatlash.
- Qurilmani avtomatik ravishda uyqu rejimiga o'tkazish va yukga qarab kuchlanish va chastotani dinamik ravishda boshqarish imkonini beruvchi moslashuvchan quvvatni boshqarish tizimi.
- Shifrlash va shifrni ochish uchun apparat ta'minoti, kutubxonalarni turli kriptografik algoritmlar bilan ta'minlash.
- Periferik qurilmalar va qo'shimcha qurilmalarga kirish uchun yagona interfeys.
- Virtual fayl tizimi va FAT, UFFS, NFSv3, ROMFS va RAMFS kabi fayl tizimlari uchun drayverlarning mavjudligi.
- TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M va boshqalar uchun protokollar to'plami.
- Raqamli imzo yordamida shifrlash va tekshirishni qoʻllab-quvvatlaydigan yangilanishlarni masofadan yetkazib berish va oʻrnatish, uzilgan oʻrnatishni davom ettirish, nosozlikni tiklash, oʻzgarishlarni orqaga qaytarish va h.k. tizimi.
- Yadro komponentlarini alohida qurish va ishlab chiqish, kerak bo'lganda ularni dinamik ravishda yuklash imkonini beruvchi dinamik yuklangan yadro modullari tizimi.
- Yaffs2, SQLite, FreeModbus, Canopen va boshqalar kabi uchinchi tomon paketlarini qo'llab-quvvatlaydi.
- Muayyan apparat platformasini qo'llab-quvvatlash uchun komponentlar bilan BSP paketini (Board Support Package) to'g'ridan-to'g'ri kompilyatsiya qilish va uni doskaga yuklash qobiliyati.
- Haqiqiy platalardan foydalanmasdan ilovalarni ishlab chiqish imkonini beruvchi emulyatorning (BSP qemu-vexpress-a9) mavjudligi.
- GCC, MDK Keil va IAR kabi umumiy kompilyatorlar va ishlab chiqish vositalarini qo'llab-quvvatlash.
- Ilovalarni yaratish va disk raskadrovka qilish, ularni platalarga yuklash va sozlamalarni boshqarish imkonini beruvchi RT-Thread Studio IDE integratsiyalashgan ishlab chiqish muhitimizni ishlab chiqish. RT-Thread uchun ishlab chiqish plaginlari Eclipse va VS Code uchun ham mavjud.

- Loyihalarni yaratish va muhitni sozlashni soddalashtiradigan Env konsol interfeysining mavjudligi.

Operatsion tizim uchta asosiy qatlamdan iborat:
- Vazifalarni real vaqtda bajarishga imkon beruvchi yadro. Yadro blokirovkalarni boshqarish va ma'lumotlarni sinxronlashtirish, vazifalarni rejalashtirish, ish zarralarini boshqarish, signallarni qayta ishlash, xabarlar navbatini qo'yish, taymerni boshqarish va xotirani boshqarish kabi sohalarni qamrab oladigan umumiy yadro primitivlarini taqdim etadi. Uskunaga xos xususiyatlar libcpu va BSP darajalarida amalga oshiriladi, ular protsessorni qo'llab-quvvatlash uchun kerakli drayverlar va kodlarni o'z ichiga oladi.
- Yadroning tepasida ishlaydigan va virtual fayl tizimi, istisnolarni qayta ishlash tizimi, kalit/qiymatni saqlash, FinSH buyruq qatori interfeysi, tarmoq stegi (LwIP) va tarmoq ramkalari, qurilmani qo'llab-quvvatlash kutubxonalari, audio quyi tizim kabi abstraksiyalarni taklif qiluvchi komponentlar va xizmatlar. simsiz stack, Wi-Fi, LoRa, Bluetooth, 2G/4G-ni qo'llab-quvvatlash uchun komponentlar. Modulli arxitektura sizning vazifalaringiz va mavjud apparat resurslariga qarab komponentlar va xizmatlarni ulash imkonini beradi.
- Dasturiy ta'minot paketlari. Umumiy maqsadli dasturiy ta'minot komponentlari va funktsiyalar kutubxonalari paketlar shaklida tarqatiladi va o'rnatiladi. Hozirda ombor 450 dan ortiq paketlarni o'z ichiga oladi, ular grafik interfeyslar, multimedia ilovalari va tarmoq ilovalaridan tortib robotlarni boshqarish tizimlari va mashinani o'rganishga asoslangan protsessorlargacha bo'lgan hamma narsani taklif qiladi. Paketlar, shuningdek, Lua, JerryScript, MicroPython, PikaScript va Rust (rtt_rust) tillarida dasturlarning bajarilishini tashkil qilish uchun dvigatellarni taqdim etadi.

5.0 versiyasiga qo'shilgan yangi funksiyalar ko'p yadroli va ko'p oqimli tizimlarni sezilarli darajada yaxshilangan qo'llab-quvvatlashni o'z ichiga oladi (masalan, tarmoq steki va fayl tizimlari ko'p oqimli ishlash uchun moslashtirilgan va rejalashtiruvchi bitta yadroli va SMP tizimlari uchun variantlarga bo'lingan). TLS (Thread Local Storage) implementatsiyasi qo'shildi. Cortex-A chiplarini qo'llab-quvvatlash yaxshilandi. 64-bitli tizimlarni qo'llab-quvvatlash sezilarli darajada yaxshilandi (TCP/IP steki va fayl tizimlari 64-bitli tizimlar uchun tekshirildi). Flesh-xotirani boshqarish komponentlari birlashtirildi. Drayverni ishlab chiqish vositalari to'plami qayta loyihalashtirildi.
Manba: opennet.ru


