RT-Thread 5.3 Real-Time Operating System Available

The release of RT-Thread 5.3 has been published, a real-time operating system (RTOS) for Internet of Things devices. The system has been developed since 2006 by a community of Chinese developers and is currently ported for 155 boards, chips, and microcontrollers based on x86, ARM, MIPS, C-SKY, Xtensa, ARC, and RISC-V architectures. The minimalist RT-Thread (Nano) build requires only 3 KB of Flash and 1.2 KB of RAM to operate. For IoT devices that are not severely resource-constrained, a full-featured version is offered, supporting packet management, configurators, a network stack, packages with graphical user interface implementations, voice control systems, databases, network services, and scripting engines. The code is written in C and distributed under the Apache 2.0 license.

The operating system is made up of three basic layers:

  • The kernel, which ensures task execution in real time. The kernel provides universal basic primitives covering areas such as lock management and data synchronization, task scheduling, thread management, signal handling, message queues, timer management, and memory management. Hardware-specific features are implemented at the libcpu and BSP levels, which include the necessary drivers and code to support the CPU.
  • Components and services that operate on top of the kernel and offer abstractions such as a virtual file system, exception handling system, key/value storage, command line interface FinSH, network stack (LwIP) and networking frameworks, device support libraries, audio subsystem, wireless stack, components for supporting Wi-Fi, LoRa, Bluetooth, 2G/4G. The modular architecture allows for the connection of components and services based on specific tasks and available hardware resources.
  • Package programs. General-purpose software components and function libraries are distributed and installed in the form of packages. Currently, the repository includes over 450 packages, offering everything from graphical interfaces, multimedia applications, and network applications to robotic control systems and machine learning-based handlers. Packages also include engines for executing programs in Lua, JerryScript, MicroPython, PikaScript, and Rust (rtt_rust).

Platform Features:

  • Supported architectures:
    • ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (supported microcontrollers from manufacturers such as ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevice, 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, HPMicro).
    • ARC (SYNOPSYS).
    • DSP (TI).
    • C-Sky.
    • x86.
  • Extendable modular architecture that allows for an environment suitable for resource-constrained systems (minimum requirements: 3 KB Flash and 1.2 KB RAM).
  • Support for various standard interfaces for program development, such as POSIX, CMSIS, C++ API. An RTduino layer is being developed separately for compatibility with the APIs and libraries of the Arduino project.
  • Extendability through a package and component plugin system.
  • Support for application development for high-performance information processing.
  • Flexible power management system that allows automatically putting the device into sleep mode and dynamically managing voltage and frequency according to load.
  • Support for hardware for encryption and decryption, providing libraries with various cryptographic algorithms.
  • Unified interface for accessing peripheral devices and additional hardware.
  • Virtual file system and drivers available for file systems such as FAT, UFFS, NFSv3, ROMFS, and RAMFS.
  • Protocol stack for TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M, etc.
  • Remote delivery and installation system for updates, supporting encryption and digital signature verification, resuming interrupted installations, recovery from failures, reverting changes, etc.
  • A system of dynamically loadable kernel modules that allows for separate construction and development of kernel components, and dynamically loading them as needed.
  • Support for various third-party packages, such as Yaffs2, SQLite, FreeModbus, Canopen, etc.
  • The ability to directly compile a BSP (Board Support Package) with components for supporting a specific hardware platform and loading it onto the board.
  • The presence of an emulator (BSP qemu-vexpress-a9) that allows development of applications without using real boards.
  • Support for standard compilers and development tools, such as GCC, MDK Keil, and IAR.
  • Development of the integrated development environment RT-Thread Studio IDE, which allows creating and debugging applications, loading them onto boards, and managing settings. Plugins for developing applications for RT-Thread are also available for Eclipse and VS Code.
  • The presence of the Env console interface, simplifying project creation and environment configuration.

Among the changes in the new release:

  • Extended support for developing components in the Rust language. Added Rust bindings for threads, mutexes, semaphores, message queues, as well as operations on memory, time, and files. Components for integration with SCons and Cargo have been implemented. Automatic detection of target platforms ARM, AArch64, and RISC-V has been ensured. Procedural macros for initializing and registering commands have been added.
  • For Cortex-M microcontrollers, support for the Open Firmware standard is included, with peripheral descriptions via Device Tree.
  • Support for VirtIO 1.2 has been added, with the ability to use packet queues, MMIO/PCI transports, and DMA synchronization. VirtIO drivers for 9P, crypto, RNG, SCMI, and SCSI have been added. VirtIO drivers for networking, block devices, console, input devices, and GPU have been updated.
  • The DVFS (Dynamic Voltage and Frequency Scaling) framework has been added for dynamic management of CPU and device frequency. Integration with ARM SCMI firmware for power management has been ensured. Improved fan management.
  • Support for TEE (Trusted Execution Environment) environments and the RPMSG (Remote Processor Messaging) messaging mechanism has been added.
  • Support for Unix sockets has been implemented.
  • Support for wireless network security mechanisms WPA3, EA (Enterprise Authentication), WAPI, OWE, and DPP has been added.
  • Support for the PTP (Precision Time Protocol) time synchronization protocol has been added.
  • The Clock Time framework has been added to work with time, supporting high-precision timers and time synchronization across multiple sources. This new framework replaces the previously used ktime, cputime, and hwtimer components.
  • The 9PFS file system has been implemented, used for file sharing between the host environment and virtual machines.
  • The implementation of lightweight processes (lwP) now supports the ARM architecture and includes support for the vDSO (virtual dynamic shared object) mechanism, allowing handlers to be moved from the kernel to user space and avoiding context switches.
  • The kernel now supports 8- and 16-bit atomic operations.
  • Support for symmetric multiprocessing (SMP) has been added for RISC-V processors in the XuanTie C/R series and the QEMU virt64 emulator.
  • The USB stack CherryUSB 1.6.1 has been updated.
  • New DM drivers (Device Manager) have been added for UFS, AHCI, NVMe, Ethernet, Intel HDA, joysticks, and touch screens.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster