RT-Thread 5.3, sebuah sistem operasi waktu nyata (RTOS) untuk perangkat Internet of Things (IoT), telah dirilis. Dikembangkan sejak tahun 2006 oleh komunitas pengembang Tiongkok, sistem ini kini telah diporting ke 155 papan, chip, dan mikrokontroler berbasis arsitektur x86, ARM, MIPS, C-SKY, Xtensa, ARC, dan RISC-V. Versi minimalis RT-Thread (Nano) hanya membutuhkan 3 KB Flash dan 1.2 KB RAM. Untuk perangkat IoT dengan keterbatasan sumber daya, tersedia versi lengkap yang mendukung manajemen paket, konfigurator, tumpukan jaringan, paket GUI, sistem kontrol suara, DBMS, layanan jaringan, dan mesin skrip. Kode ditulis dalam bahasa C dan didistribusikan di bawah lisensi Apache 2.0.
Sistem operasi terdiri dari tiga lapisan dasar:
- Kernel yang memungkinkan tugas dijalankan secara real time. Kernel menyediakan inti primitif generik yang mencakup bidang-bidang seperti manajemen kunci dan sinkronisasi data, penjadwalan tugas, manajemen thread, penanganan sinyal, antrian pesan, manajemen timer, dan manajemen memori. Fitur khusus perangkat keras diimplementasikan pada level libcpu dan BSP, yang mencakup driver dan kode yang diperlukan untuk mendukung CPU.
- Komponen dan layanan yang berjalan di atas kernel dan menawarkan abstraksi seperti sistem file virtual, sistem penanganan pengecualian, penyimpanan kunci/nilai, antarmuka baris perintah FinSH, tumpukan jaringan (LwIP) dan kerangka jaringan, pustaka dukungan perangkat, subsistem audio, tumpukan nirkabel, komponen untuk mendukung Wi-Fi, LoRa, Bluetooth, 2G/4G. Arsitektur modular memungkinkan Anda menghubungkan komponen dan layanan bergantung pada tugas Anda dan sumber daya perangkat keras yang tersedia.
- Paket perangkat lunak. Komponen perangkat lunak tujuan umum dan pustaka fungsi didistribusikan dan diinstal dalam bentuk paket. Repositori saat ini mencakup lebih dari 450 paket, menawarkan segalanya mulai dari antarmuka grafis, aplikasi multimedia dan aplikasi jaringan hingga sistem kontrol robot dan prosesor berbasis pembelajaran mesin. Paket tersebut juga menyediakan mesin untuk mengatur eksekusi program dalam bahasa Lua, JerryScript, MicroPython, PikaScript dan Rust (rtt_rust).

Fitur platform:
- Dukungan arsitektur:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (mikrokontroler dari produsen seperti ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP didukung).
- LENGAN Korteks-R4.
- LENGAN Korteks-A8/A9 (NXP).
- ARM7 (Samsung).
- ARM9 (Semua Pemenang, Xilinx, GOKE).
- ARM11 (Penuh).
- MIPS32 (Loongson, Ingenik).
- RISC-V RV32E/RV32I[F]/RV64[D] (sifive, Canaan Kendryt, bouffalo_lab, Nuclei, T-Head, HPMicro).
- ARC (SINOPSIS)
- DSP (TI).
- C-Langit.
- x86.
- Arsitektur modular yang dapat diperluas yang memungkinkan Anda menciptakan lingkungan yang cocok untuk sistem dengan sumber daya terbatas (persyaratan minimum - Flash 3 KB dan RAM 1.2 KB).
- Dukungan untuk berbagai antarmuka standar untuk pengembangan program, seperti POSIX, CMSIS, C++ API. Lapisan RTduino sedang dikembangkan secara terpisah untuk kompatibilitas dengan API dan perpustakaan proyek Arduino.
- Kemungkinan perluasan melalui sistem paket dan komponen plug-in.
- Dukungan untuk pengembangan aplikasi untuk pemrosesan informasi berkinerja tinggi.
- Sistem manajemen daya fleksibel yang memungkinkan Anda mengalihkan perangkat secara otomatis ke mode tidur dan mengontrol voltase dan frekuensi secara dinamis tergantung pada beban.
- Dukungan perangkat keras untuk enkripsi dan dekripsi, penyediaan perpustakaan dengan berbagai algoritma kriptografi.
- Antarmuka terpadu untuk akses ke perangkat periferal dan peralatan tambahan.
- Sistem file virtual dan ketersediaan driver untuk sistem file seperti FAT, UFFS, NFSv3, ROMFS dan RAMFS.
- Tumpukan protokol untuk TCP/IPEthernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M, dll.
- Sebuah sistem untuk pengiriman jarak jauh dan instalasi pembaruan yang mendukung enkripsi dan verifikasi menggunakan tanda tangan digital, melanjutkan instalasi yang terputus, memulihkan dari kegagalan, mengembalikan perubahan, dll.
- Sebuah sistem modul kernel yang dimuat secara dinamis yang memungkinkan Anda membangun dan mengembangkan komponen kernel secara terpisah, dan memuatnya secara dinamis bila diperlukan.
- Mendukung berbagai paket pihak ketiga, seperti Yaffs2, SQLite, FreeModbus, Canopen, dll.
- Kemampuan untuk secara langsung mengkompilasi paket BSP (Board Support Package) dengan komponen untuk mendukung platform perangkat keras tertentu, dan memuatnya ke board.
- Ketersediaan emulator (BSP qemu-vexpress-a9), yang memungkinkan Anda mengembangkan aplikasi tanpa menggunakan papan asli.
- Dukungan untuk kompiler umum dan alat pengembangan seperti GCC, MDK Keil, dan IAR.
- Pengembangan lingkungan pengembangan terintegrasi kami sendiri RT-Thread Studio IDE, yang memungkinkan Anda membuat dan men-debug aplikasi, memuatnya ke papan, dan mengelola pengaturan. Plugin pengembangan untuk RT-Thread juga tersedia untuk Eclipse dan VS Code.
- Kehadiran antarmuka konsol Env, yang menyederhanakan pembuatan proyek dan pengaturan lingkungan.
Perubahan dalam rilis baru meliputi:
- Dukungan untuk pengembangan komponen dalam bahasa Rust telah diperluas. Binding Rust telah ditambahkan untuk thread, mutex, semaphore, antrian pesan, serta operasi dengan memori, waktu, dan file. Komponen untuk integrasi dengan SCons dan Cargo telah diimplementasikan. Deteksi otomatis platform target ARM, AArch64, dan RISC-V kini tersedia. Makro prosedural untuk inisialisasi dan pendaftaran perintah telah ditambahkan.
- Untuk mikrokontroler Cortex-M, dukungan untuk standar Open Firmware dengan deskripsi periferal melalui Device Tree diaktifkan.
- Menambahkan dukungan untuk VirtIO 1.2 dengan kemampuan untuk menggunakan antrian paket, transport MMIO/PCI, dan sinkronisasi DMA. Driver VirtIO untuk 9P, kriptografi, RNG, SCMI, dan SCSI telah ditambahkan. Driver VirtIO untuk jaringan, perangkat blok, konsol, perangkat input, dan GPU telah diperbarui.
- Kerangka kerja DVFS (Dynamic Voltage and Frequency Scaling) telah ditambahkan untuk manajemen frekuensi CPU dan perangkat secara dinamis. Integrasi dengan firmware ARM SCMI untuk manajemen daya telah disediakan. Manajemen kipas telah ditingkatkan.
- Menambahkan dukungan untuk lingkungan TEE (Trusted Execution Environment) dan mekanisme pengiriman pesan RPMSG (Remote Processor Messaging).
- Dukungan untuk soket Unix telah diimplementasikan.
- Menambahkan dukungan untuk mekanisme keamanan jaringan nirkabel WPA3, EA (Enterprise Authentication), WAPI, OWE, dan DPP.
- Menambahkan dukungan untuk protokol sinkronisasi waktu PTP (Precision Time Protocol).
- Kerangka kerja Clock Time telah ditambahkan untuk bekerja dengan waktu, mendukung pengatur waktu presisi tinggi dan sinkronisasi waktu di berbagai sumber. Kerangka kerja baru ini menggantikan komponen ktime, cputime, dan hwtimer yang sebelumnya digunakan.
- Sistem file 9PFS telah diimplementasikan, digunakan untuk pertukaran file antara lingkungan host dan mesin virtual.
- Implementasi proses ringan (lwP) kini mendukung arsitektur ARM dan menambahkan dukungan untuk mekanisme vDSO (virtual dynamic shared object), yang memungkinkan handler dipindahkan dari kernel ke ruang pengguna dan menghindari peralihan konteks.
- Kernel tersebut mengimplementasikan dukungan untuk operasi atomik 8-bit dan 16-bit.
- Menambahkan dukungan untuk pemrosesan multiprosesor simetris (SMP) untuk prosesor RISC-V seri XuanTie C/R dan emulator QEMU virt64.
- CherryUSB USB stack telah diperbarui ke versi 1.6.1.
- Menambahkan driver DM (Device Manager) baru untuk UFS, AHCI, NVMe, Ethernet, Intel HDA, joystick, dan layar sentuh.
Sumber: opennet.ru
