What kind of OS is this and what capabilities does it have?

Released after six months of work RT-Thread 5.1 release, is an RTOS (Real Time OS) for Internet of Things devices. The project is not new, it appeared in 2006 and has been actively developing all this time. The OS now supports over 150 different systems, including boards, chips and microcontrollers. At the same time, the architectures are also different – the operating system can be called universal. x86, ARM, MIPS, C-SKY, Xtensa, ARC and RISC-V are compatible with it.

What is this system and what is it capable of?

Developers declarethat the work requires a minimum amount of resources, this is 3 KB Flash and 1.2 KB RAM. But this is for a minimalist build. If the device has more capabilities, then a different OS version is used. It already has package management, a network stack, a graphical interface and other capabilities, including voice control systems, DBMS, network services and scripts.

Main OS modules:

  • in fact, the core, which ensures the execution of various tasks in real time. It includes lock management and data synchronization, task scheduling, thread management, signal processing, message queues, timer management, memory management

  • components and services. They run on top of the kernel and provide virtual file system availability, exception handling, key/value storage, FinSH command line interface, networking stack (LwIP) and networking frameworks, device support libraries, audio subsystem, wireless stack, components for Wi-Fi support -Fi, LoRa, Bluetooth, 2G/4G. If some of the components are not needed, they do not need to be connected. It all depends on the user's needs and the hardware resources that are available

  • software components. They are available for extended versions of the OS, almost 500 packages are offered in total. The options range from graphical interfaces, multimedia and network applications to robotic systems control and machine learning. Components are compatible with Lua, JerryScript, MicroPython, PikaScript and Rust (rtt_rust)

Architectures supported by the system:

  • ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (microcontrollers from manufacturers such as ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP are supported)

  • 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

Since the development is Chinese, in addition to traditional architectures, projects from developers from the PRC and Loongson are included.

What else:

  • A distinctive feature of this operating system is its modular architecture. It makes it possible to create an environment with minimal resource requirements, as discussed above

  • The OS supports various interfaces for software development, including POSIX, CMSIS, C++ API. The RTduino layer is being developed separately for compatibility with the API and libraries of the Arduino project

  • You can always expand the capabilities of the OS using both components and modules

  • if there is a need, you can automatically put the device into sleep mode and dynamically control voltage and frequency depending on the load

  • if necessary, you can also develop applications for high-performance data processing

  • hardware support for encryption and decryption plus libraries with different cryptographic algorithms are supported and provided

  • simplified unified interface for working with peripheral devices and third-party equipment

  • native virtual file system plus drivers for FAT, UFFS, NFSv3, ROMFS and RAMFS

  • support for a large number of network protocols, for example, TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M

  • the developers have provided the ability to remotely deliver and install updates, resume an interrupted installation, recover from a failure, and have provided for other emergency situations

  • supported packages such as Yaffs2, SQLite, FreeModbus, Canopen

  • there is a BSP emulator qemu-vexpress-a9, which allows you to develop applications without real boards

But that's not all

  • Yes, in the new version the developers have added, for example, support for epoll, eventfd, signalfd, timerfd and select mechanisms. The terminal emulator subsystem has been implemented. Added support for DFZU2EG MPSoC and cv181x-riscv devices.

  • The OS is compatible with the entire Arduino ecosystem, plus boards such as raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark are supported.

  • In addition, a large number of new equipment has been added, including 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 ).

  • Added framework for developing clk drivers.

  • Added exfat configuration to DFS. The kernel has been switched to use the dfsv2 file system by default.

  • Improved support for TTY terminals.

  • The I/O system has added support for the O_DIRECT and O_SYNC flags.

  • In the implementation of lightweight processes lwP (Lightweight Process), the wp_new function is replaced by lwp_create. Added sys_setitimer function.

The operating system code is written in C and is distributed under the Apache 2.0 license.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *