Internet of Things á ááºáá»á¬ážá¡ááœáẠá¡áá»áááºááŸáá·áºáááŒá±ážáá® áááºáááºááŸá¯á áá Ạ(RTOS) RT-Thread 5.0 ááᯠáá¯ááºáá±ááá¯ááºáá«ááŒá®á á€á áá áºááᯠááá¯áẠdeveloper á¡ááá¯ááºážá¡ááá¯ááºážá០2006 áá¯ááŸá áºááááºážá áá®ááœááºáá²á·ááŒá®áž x200á ARMá MIPSá C-SKYá Xtensaá ARC ááŸáá·áº RISC-V áááá¯áá¬áá»á¬ážááᯠá¡ááŒá±áá¶á áá¯ááºáá»á¬ážá áá»á áºááºáá»á¬ážááŸáá·áº ááá¯ááºáááá¯ááœááºáááá¯áᬠ86 áá®ážáá«ážááá¯á· áá±ážááá¯á·áá¬ážáááºá áá±ážáááºáá±á¬ RT-Thread (Nano) áááºáá±á¬ááºááŸá¯ááẠáááºáááºááẠ3 KB Flash ááŸáá·áº RAM 1.2 KB áᬠááá¯á¡ááºáááºá á¡áááºážá¡ááŒá áºáá»á¬ážááœáẠá¡ááœááºá¡ááá·áºá¡áááºáááŸááá±á¬ IoT á ááºáá á¹á ááºážáá»á¬ážá¡ááœááºá áááºáá±á·áá»áºá á®áá¶ááá·áºááœá²ááŸá¯á á á®á ááºááœá²á·á ááºážááŸá¯áá»á¬ážá ááœááºáááºá ááºážá áá áºá graphical interfaceá á¡áá¶ááááºážáá»á¯ááºááŸá¯á áá áºáá»á¬ážá DBMSá ááœááºáááºáááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº á¡ááºáá»ááºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááá¯ááºáᬠáááºáá±á·áá»áºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááá·áº ááŒáá·áºá á¯á¶áá±á¬áá¬ážááŸááºážááᯠáááºážááŸááºážáá¬ážáááºá áá¬ááºááœáŸááºážáá»á¬áž áá¯ááºááᯠC ááŒáá·áºáá±ážáá¬ážáá¬ážááŒá®áž Apache 2.0 ááá¯ááºá ááºá¡á±á¬ááºááœáẠááŒáá·áºáá±áá¬ážáááºá
ááááºáá±á¬ááºážá¡ááºá¹áá«áááºáá»á¬áž-
- áááá¯áᬠáá¶á·ááá¯ážááŸá¯-
- 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 Kendrytá bouffalo_labá Nucleiá T-Head)á
- ARC (SYNOPSYS)
- DSP (TI)á
- ááá¯ááºááááºááœáŸá¬á
- x86 á
- á¡ááá·áºá¡áááºááŸááá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážááŸááá±á¬ á áá áºáá»á¬ážá¡ááœáẠááá·áºáá»á±á¬áºáá±á¬ áááºáááºážáá»ááºááᯠáááºáá®ážááá¯ááºá á±ááá·áº ááá¯ážáá»á²á·ááá¯ááºáá±á¬ áá±á¬áºáá»á°áá¬áááá¯áá¬áááºáᬠ(á¡áááá·áºáá¯á¶ážááá¯á¡ááºáá»ááºáá»á¬áž - 3 KB Flash ááŸáá·áº 1.2 KB RAM)á
- POSIXá CMSISá C++ API áá²á·ááá¯á·áá±á¬ áááá¯ááááºááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠá á¶á¡ááºáá¬áá±á·á áºá¡áá»áá¯ážáá»áá¯ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á RTduino á¡ááœáŸá¬ááẠArduino ááá±á¬áá»áẠAPI ááŸáá·áº á á¬ááŒáá·áºááá¯ááºáá»á¬ážááŸáá·áº ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá¡ááœáẠáá®ážááŒá¬ážá á® áá®ááœááºáá»ááºááŸááááºá
- áááºáá±á·áá»áºáá»á¬ážááŸáá·áº ááááºá¡áẠá¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠá áá áºááŒáá·áº áá»á²á·ááœááºááá¯ááºááŒá±á
- á áœááºážáá±á¬ááºáááºááŒáá·áºáá¬ážáá±á¬ ááááºážá¡áá»ááºá¡áááºáá¯ááºáá±á¬ááºááŒááºážá¡ááœáẠá¡ááá®áá±ážááŸááºážááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠáá¶á·ááá¯ážááŸá¯á
- á ááºáá á¹á ááºážááᯠá¡áááºáá¯ááºááœáẠá¡ááá¯á¡áá»á±á¬áẠááá·áºááœááºážááá¯ááºááŒá®áž áááºáá±á«áº áá°áááºá ááá¯á·á¡á¬ážááŸáá·áº ááŒáááºááŸá¯ááºážááᯠá¡ááºááá¯ááºá¡á¬ážááá¯áẠááááºážáá»á¯ááºááá¯ááºá á±ááá·áº ááŒá±á¬ááºážááœááºááŒááºááœáẠáá«áá«á á®áá¶ááá·áºááœá²ááŸá¯á áá áºá
- áá¯ááºááŸááºááŒááºážááŸáá·áº áá¯ááºááŸááºááŒááºážá¡ááœáẠáá¬á·ááºáá²áá¶á·ááá¯ážááŸá¯á á¡áá»áá¯ážáá»áá¯ážáá±á¬ áá¯ááºááŸááºá áá Ạá¡ááºááá¯áá®áááºáá»á¬ážááŒáá·áº á á¬ááŒáá·áºááá¯ááºáá»á¬áž áá¶á·ááá¯ážáá±ážáááºá
- á¡áá¶áááááá¬áá»á¬ážááŸáá·áº á¡ááá¯áá á¹á ááºážáááááá¬áá»á¬ážááá¯á· áááºáá±á¬ááºá¡áá¯á¶ážááŒá¯ááá¯ááºááẠáá±á«ááºážá ááºážáá¬ážáá±á¬ á¡ááºáá¬áá±á·á áºá
- ááá¯ááºá áá áºá¡áá¯ááŸáá·áº FATá UFFSá NFSv3á ROMFS ááŸáá·áº RAMFS áá²á·ááá¯á·áá±á¬ ááá¯ááºá áá áºáá»á¬ážá¡ááœáẠáááá¯ááºáá¬áá»á¬áž áááŸáááá¯ááºáááºá
- TCP/IPá Ethernetá Wi-Fiá Bluetoothá NB-IoTá 2G/3G/4Gá HTTPá MQTTá LwM2Má á áááºááá¯á·á¡ááœáẠáááá¯ááá¯áá±á¬á¡ááœá²
- áá áºáá»á áºáááºáááºááŸááºááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºááŸááºááŒááºážááŸáá·áº á¡áááºááŒá¯ááŒááºážááá¯á·ááᯠáá¶á·ááá¯ážáá±ážááá·áº á¡áá±ážá០áá±ážááá¯á·ááŒááºážááŸáá·áº á¡ááºááááºáá»á¬áž áááºáááºááŒááºážá¡ááœáẠá áá áºáá áºáá¯á á¡ááŸá±á¬ááºá¡ááŸááºááŒá áºá á±áá±á¬ áááºáááºááŸá¯ááᯠááŒááºáááºá áááºááŒááºážá áá»ááºááœááºááŸá¯á០ááŒááºáááºááá°ááŒááºážá á¡ááŒá±á¬ááºážá¡áá²áá»á¬áž ááŒááºáááºááŒá¯áá¯ááºááŒááºáž á áááºááŒáá·áºá
- kernel á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠáá®ážááŒá¬ážáááºáá±á¬ááºááŒá®áž ááœá¶á·ááŒáá¯ážááá¯ážáááºá á±ááŒá®áž ááá¯á¡ááºááá·áºá¡áá« áááºážááá¯á·ááᯠááá¯ááºážááá áºááŒáá·áº áááºááá¯ááºááá·áº á áá áºáá áºáá¯ááŒá áºáááºá
- Yaffs2á SQLiteá FreeModbusá Canopen á áááºááŒáá·áº á¡áá»áá¯ážáá»áá¯ážáá±á¬ Third-party packages áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
- áááºááŸááºáá¬ážáá±á¬ áá¬á·ááºáá²ááááºáá±á¬ááºážááᯠáá¶á·ááá¯ážááẠá¡á áááºá¡ááá¯ááºážáá»á¬ážááŸáá·áºá¡áá° BSP áááºáá±á·ááºá» (Board Support Package) ááᯠááá¯ááºááá¯ááºá á¯á ááºážááá¯ááºááŒá®áž áááºážááᯠáá¯ááºáá±á«áºááœáẠáááºááá¯ááºáááºá
- á¡á á áºá¡ááŸááºáá¯ááºáá»á¬ážááá¯á¶ážáá² á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠáá®ááœááºááá¯ááºá á±ááá·áº emulator (BSP qemu-vexpress-a9) ááááŸáááá¯ááºááŸá¯á
- GCCá MDK Keil ááŸáá·áº IAR áá²á·ááá¯á·áá±á¬ áá¯á¶ compilers ááŸáá·áº development tools áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á
- ááá·áºá¡á¬áž á¡ááºááºáá®áá±ážááŸááºážáá»á¬ážáááºáá®ážáááºááŸáá·áº á¡ááŸá¬ážááŸá¬ááŒááºáááºá áááºážááá¯á·á¡á¬áž áá¯ááºáá»á¬ážáá±á«áºááœááºáááºáááºááŸáá·áº áááºáááºáá»á¬ážááᯠá
á®áá¶ááá·áºááœá²ááẠááœáá·áºááŒá¯ááá·áº áá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯ááºáá±á«ááºážá
áẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áááºáááºážáá»áẠRT-Thread Studio IDE ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á RT-Thread á¡ááœáẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ ááááºá¡ááºáá»á¬ážááᯠEclipse ááŸáá·áº VS Code ááá¯á·á¡ááœááºáááºáž áááá¯ááºáá«áááºá
- ááá±á¬áá»ááºáá»á¬ážáááºáá®ážááŒááºážááŸáá·áº áááºáááºážáá»ááºááᯠá
áá
áºááá·áºááœááºážááŒááºážááá¯á·ááᯠááá¯ážááŸááºážááœááºáá°á
á±ááá·áº Env ááœááºááá¯ážááºá¡ááºáá¬áá±á·á
áºááœáẠááŸááá±ááŒááºážá
áááºáááºááŸá¯á áá áºááœáẠá¡ááŒá±áá¶á¡ááœáŸá¬ áá¯á¶ážáá¯áá«áááºáááº-
- á¡áá¯ááºáá»á¬ážááᯠá¡áá»áááºááŸáá·áºáááŒá±ážáá® áá¯ááºáá±á¬ááºááá¯ááºá á±ááá·áº kernel áá áºáá¯á kernel ááẠáá±á¬á·ááºáá»ááŒááºážá á®áá¶ááá·áºááœá²ááŸá¯ááŸáá·áº áá±áá¬áááºáá°ááŒá¯ááŒááºážá á¡áá¯ááºá¡áá»áááºááá¬ážááœá²ááŒááºážá thread á á®áá¶ááá·áºááœá²ááŸá¯á á¡áá»ááºááŒááá¯ááºááœááºááŒááºážá áááºáá±á·áá»áºáááºážá á®ááŒááºážá á¡áá»áááºááá¯ááºážá á®áá¶ááá·áºááœá²ááŸá¯ááŸáá·áº áááºááá¯áá®á á®áá¶ááá·áºááœá²ááŸá¯á ááá·áº áááºáááºáá»á¬ážááᯠá¡áá»á¯á¶ážáááºá á±áá±á¬ áá±áá¯áá»á¡ááŒá±áá¶á¡ááŒá±áá¶áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá CPU ááᯠáá¶á·ááá¯ážááẠááá¯á¡ááºáá±á¬ áááá¯ááºáá¬áá»á¬ážááŸáá·áº áá¯ááºáá»á¬áž áá«áááºááá·áº áá¬á·ááºáá²ááá¯ááºáᬠá¡áá°ážá¡ááºá¹áá«áááºáá»á¬ážááᯠlibcpu ááŸáá·áº BSP á¡ááá·áºáá»á¬ážááœáẠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ážáááºá
- kernel áááááºááœááºáááºáááºááŒá®áž virtual ááá¯ááºá áá áºá ááŒáœááºážáá»ááºááá¯ááºááœááºááŸá¯á áá áºá áá±á¬á·/áááºááá¯ážááá¯ááŸá±á¬ááºááŸá¯á FinSH á¡áááá·áºáá±ážá á¬ááá¯ááºážá¡ááºáá¬áá±á·á áºá networking stack (LwIP) ááŸáá·áº networking frameworks áá²á·ááá¯á·áá±á¬ abstractions áá»á¬ážááᯠáá±ážáá±á¬ááºááá·áº á¡á áááºá¡ááá¯ááºážáá»á¬ážááŸáá·áº áááºáá±á¬ááºááŸá¯áá»á¬ážá á ááºáá á¹á ááºážáá¶á·ááá¯ážááŸá¯á á¬ááŒáá·áºááá¯ááºáá»á¬ážá á¡áá¶á áá áºááœá²áá»á¬ážá ááŒáá¯ážáá²á· stacká Wi-Fiá LoRaá Bluetoothá 2G/4G áá¶á·ááá¯ážááẠá¡á áááºá¡ááá¯ááºážáá»á¬ážá áá±á¬áºáá»á°áá¬áááá¯áá¬áááºáá¬áá»á¬ážááẠáááºááá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áááŸáááá¯ááºáá±á¬ áá¬á·ááºáá²á¡áááºážá¡ááŒá áºáá»á¬ážáá±á«áºáá°áááºá á¡á áááºá¡ááá¯ááºážáá»á¬ážááŸáá·áº áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáá»áááºáááºááá¯ááºá á±áá«áááºá
- Software packages áá»á¬ážá áá±áá°áá»áááºááœááºáá»áẠáá±á¬á·ááºáá²ááºá¡á áááºá¡ááá¯ááºážáá»á¬ážááŸáá·áº áá¯ááºáá±á¬ááºáá»ááºá á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠáááºáá±á·ááºá»áá¯á¶á á¶ááŒáá·áº ááŒáá·áºáá±ááŒá®áž ááá·áºááœááºážáá¬ážáááºá ááá¯ááŸá±á¬ááºááŸá¯ááœáẠáááºááŸáááœáẠá¡áá¯ááºáá±á«ááºáž 450 áá»á±á¬áºáá«áááºááŒá®áž ááááºáá áºá¡ááºáá¬áá±á·á áºáá»á¬ážá áá¬ááºáá®áá®áá®áá¬á¡ááºááá®áá±ážááŸááºážáá»á¬ážááŸáá·áº ááœááºáááºá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážá០á ááºáá¯ááºááááºážáá»á¯ááºááŸá¯á áá áºáá»á¬ážááŸáá·áº á ááºáááºáá°ááŸá¯á¡ááŒá±áá¶áááá¯áááºáá¬áá»á¬ážá¡áá á¡áá¬á¡á¬ážáá¯á¶ážááᯠáá±ážáá±á¬ááºáá¬ážáááºá áááºáá±á·áá»áºáá»á¬ážááẠLuaá JerryScriptá MicroPythoná PikaScript ááŸáá·áº Rust (rtt_rust) áá¬áá¬á áá¬ážáá»á¬ážááŒáá·áº áááá¯ááááºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠá¡ááºáá»ááºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
áá¬ážááŸááºáž 5.0 ááœáẠááá·áºááœááºážáá¬ážááá·áº á¡ááºá¹áá«áááºá¡áá
áºáá»á¬ážáá²ááœáẠmulti-core ááŸáá·áº multi-threaded á
áá
áºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááœáẠáááá¬áááºááŸá¬ážá
áœá¬ ááá¯ážáááºáá¬áááºááᯠáááááŒá¯ááááá¯ááºááẠ(á¥ááá¬á ááœááºááẠstack ááŸáá·áº ááá¯ááºá
áá
áºáá»á¬ážááẠmulti-threaded áá¯ááºááœáẠá¡áá¯ááºáá¯ááºáááºá¡ááœáẠá¡áááºááŒá±ááœá¬ážáááºá á¡áá»áááºááá¬ážááᯠááá¯ááºážááŒá¬ážáá¬ážáááºá single-core á
áá
áºáá»á¬ážááŸáá·áº SMP á¡ááœáẠááœá±ážáá»ááºááŸá¯áá»á¬áž)á TLS (Thread Local Storage) ááᯠááá·áºááœááºáž á¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá Cortex-A áá»á
áºááºáá»á¬ážá¡ááœáẠááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ áá¶á·ááá¯ážááŸá¯á 64-bit á
áá
áºáá»á¬ážá¡ááœáẠáááá¬áááºááŸá¬ážá
áœá¬ ááŒáŸáá·áºáááºáá±ážááẠ(TCP/IP stack ááŸáá·áº ááá¯ááºá
áá
áºáá»á¬ážááᯠ64-bit á
áá
áºáá»á¬ážá¡ááœáẠá¡áááºááŒá¯áá¬ážáááº)á Flash memory á
á®áá¶ááá·áºááœá²ááŸá¯ á¡á
áááºá¡ááá¯ááºážáá»á¬ážááᯠáá±á«ááºážá
ááºáá¬ážáááºá áááá¯ááºáá¬áá»á¬ážáááºáá®ážáááºá¡ááœáẠáááááá¬á¡á
á¯á¶ááᯠááŒááºáááºáá®ááá¯ááºážáá¯ááºáá¬ážáá«áááºá
source: opennet.ru