RT-Thread 5.3 real-time operating system available

RT-Thread 5.3, a real-time operating system (RTOS) for Internet of Things devices, has been released. Developed since 2006 by a community of Chinese developers, it has now been ported to 155 boards, chips, and microcontrollers based on x86, ARM, MIPS, C-SKY, Xtensa, ARC, and RISC-V architectures. A minimalist build of RT-Thread (Nano) requires only 3 KB of Flash and 1.2 KB of RAM. For IoT devices with unlimited resource constraints, a fully featured version is available, supporting package management, configurators, a network stack, GUI packages, voice control systems, a DBMS, network services, and scripting engines. The code is written in C and distributed under the Apache 2.0 license.

The operating system consists of three basic layers:

  • A kernel that performs tasks in real time. The kernel provides generic core primitives covering areas such as lock management and data synchronization, task scheduling, thread management, signal handling, message queuing, 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 running on top of the kernel and offering abstractions such as virtual file system, exception handling system, key/value storage, FinSH command line interface, network stack (LwIP) and network frameworks, device support libraries, audio subsystem, wireless stack, components to support Wi-Fi, LoRa, Bluetooth, 2G/4G. Modular architecture allows you to connect components and services depending on your tasks and available hardware resources.
  • Software packages. General purpose software components and function libraries are distributed and installed in the form of packages. The repository currently includes over 450 packages ranging from GUIs, multimedia and network applications to robot control systems and machine learning processors. The packages also provide engines for organizing the execution of programs in the languages ​​Lua, JerryScript, MicroPython, PikaScript and Rust (rtt_rust).

Platform Features:

  • Architecture support:
    • 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.
  • Extensible modular architecture that allows you to create an environment suitable for systems with limited resources (minimum requirements - 3 KB Flash and 1.2 KB RAM).
  • Support for various standard interfaces for program development, such as POSIX, CMSIS, C++ API. Separately, the RTduino layer is being developed for compatibility with the API and libraries of the Arduino project.
  • Expandable through a system of packages and plug-ins.
  • Support for application development for high-performance information processing.
  • Flexible power management system that allows you to automatically put the device into sleep mode and dynamically control voltage and frequency depending on the load.
  • Hardware support for encryption and decryption, providing libraries with various cryptographic algorithms.
  • Unified interface for access to peripheral devices and additional equipment.
  • Virtual FS and availability of drivers for FS 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.
  • A system for remote delivery and installation of updates that supports encryption and verification using a digital signature, resuming an interrupted installation, recovering from a failure, rolling back changes, etc.
  • A system of dynamically loadable kernel modules that allows you to separately build and develop kernel components, and dynamically load them when necessary.
  • Support for various third party packages such as Yaffs2, SQLite, FreeModbus, Canopen, etc.
  • The ability to directly compile a BSP-package (Board Support Package) with components to support a specific hardware platform, and upload it to the board.
  • Availability of an emulator (BSP qemu-vexpress-a9), which allows you to develop applications without using real boards.
  • Support for common compilers and development tools such as GCC, MDK Keil and IAR.
  • Development of our own integrated development environment RT-Thread Studio IDE, which allows you to create and debug applications, load them onto boards, and manage settings. RT-Thread development plugins are also available for Eclipse and VS Code.
  • The presence of the Env console interface, which simplifies the creation of projects and setting up the environment.

Among the changes in the new release:

  • Support for developing components in the Rust language has been expanded. Rust bindings have been added for threads, mutexes, semaphores, message queues, as well as operations with memory, time, and files. Components for integration with SCons and Cargo have been implemented. Automatic detection of ARM, AArch64, and RISC-V target platforms is now available. Procedural macros for initialization and command registration have been added.
  • For Cortex-M microcontrollers, support for the Open Firmware standard with peripheral description via Device Tree is enabled.
  • Added support for VirtIO 1.2 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 network, block devices, console, input devices, and GPU have been updated.
  • The DVFS (Dynamic Voltage and Frequency Scaling) framework has been added for dynamic CPU and device frequency management. Integration with ARM SCMI firmware for power management has been provided. Fan management has been improved.
  • Added support for TEE (Trusted Execution Environment) environments and the RPMSG (Remote Processor Messaging) messaging mechanism.
  • Support for Unix sockets has been implemented.
  • Added support for wireless network security mechanisms WPA3, EA (Enterprise Authentication), WAPI, OWE and DPP.
  • Added support for the PTP (Precision Time Protocol) time synchronization protocol.
  • The Clock Time framework has been added for working with time, supporting high-precision timers and time synchronization across multiple sources. The new framework replaces the previously used ktime, cputime, and hwtimer components.
  • The 9PFS file system has been implemented, used to exchange files between the host environment and virtual machines.
  • The implementation of lightweight processes (lwP) now supports the ARM architecture and adds support for the vDSO (virtual dynamic shared object) mechanism, which allows handlers to be moved from the kernel to user space and avoid context switches.
  • The kernel implements support for 8- and 16-bit atomic operations.
  • Added support for symmetric multiprocessing (SMP) for XuanTie C/R series RISC-V processors and the QEMU virt64 emulator.
  • CherryUSB USB stack updated to 1.6.1.
  • Added new DM drivers (Device Manager) for UFS, AHCI, NVMe, Ethernet, Intel HDA, joysticks and touchscreens.

Source: opennet.ru

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