RT-Thread v5.0.2 Release
Get ready for a thrilling ride with RT-Thread as we unveil our latest version v5.0.2! Since the grand launch of version v5.0.0, we’ve been on an exhilarating journey of transformation, with our kernel and components undergoing a series of dynamic changes and enhancements.
RT-Thread code repository address: ● https://github.com/RT-Thread/rt-thread
RT-Thread 5.0.2 version release log details: ● https://github.com/RT-Thread/rt-thread/releases/tag/v5.0.2
Here’s a sneak peek into some of the electrifying highlights and pivotal changes:
🧰 Kernel improvements:
● Added AMP support.
● Added message priority for message queues.
● Added rt_hw_interrupt_is_disabled API for detecting whether the interrupt is turned off;
● Added APIs to get object names and thread names.
● Improved errno compatibility with POSIX, enhancing compatibility.
● Improved atomic operation Atomic detection support.
● Improved device_open interface to avoid repeated calls.
● Removed recursion in mutexes, enhancing stability.
● Merged DBG header files, removing redundant code.
● Modified the structure of rt_thread to clearly inherit rt_object.
● Fixed the MQ reception blocking issue in user mode.
● Fixed uninitialized variable rt_err in thread.c and type conversion error in timer.c (IAR).
🔌 Component updates:
● lwp:
○ Added support for checking executable permissions for elf.
○ Supported more features of IEEE Std 1003.1–2017 signals.
○ Supported file descriptor transmission.
○ Fixed memory leak issues, improving stability.
○ Added more system call support.
● libc
○ Adapted rt_channel, added some commonality of rt_channel function on dfs v2, and standardized signalfd.
○ Renamed libc.c to posix/stdio.c.
○ Added timerfd system call function.
○ Implemented lightweight timezone configuration; optimized resource consumption.
○ Supported rt-thread CPP wrapper sub-switch macro, external third-party libc package
○ Supported picolibc’s heap.
○ Redirected sys/ioctl header file to bits/ioctl, improved posix interface message queue.
● utilities
○ Removed zmodem.
○ Supported extensible memory management.
● dfs:
○ Upgraded device file system (dfs) to v2 version, while considering compatibility also retained v1 version for Kconfig configuration selection.
○ Improved fd closing strategy to avoid potential memory leak issues.
○ Fixed tmpfs spin lock error, nfs 64-bit architecture error.
● mm:
○ Added unmap page API.
○ Improved output of list_page .
○ Added API to unmap pages, better managing memory.
○ Fixed lwp _load_script .
○ Modified lwp_struct_copy function to copy working_directory when forking a child process .
● finsh
○ Added MSH auto-completion sub-option function .
○ Fixed issue where Finsh offset was used before range check .
● Network
○ Added more hook functions .
○ Fixed ping timeout calculation error, ipv6 compatibility issue .
○ Fixed issue finding next-hop in lwip_ip4_route_src .
○ Modified using interface to set default network device .
○ Optimized at_vprintfln and network-related Kconfig .
📦 Device drivers:
● Prepared for device driver v2.0 , bringing more features and performance improvements .
● Added device tree sub-node search macro, improving device management efficiency .
● Fixed issue where serial port sometimes repeatedly sends carriage return characters, improving serial communication stability .
● Fixed CPU timer issue in multi-threading , dtb compilation warning .
● Optimized SPI transmission speed and fixed some issues .
● Modified ADC channel data type , and added built-in channel universal number recognition .
● Modified current sensor framework back to v1 version , and made it independent of v2 .
● Fixed inconsistent return type error in Sensor-V1 , redefined Sensor-V2 as sensor framework .
● Modified tty driver program to device , and fixed multiple scanfs causing data loss issues .
⚙️ Libcpu:
● Made multiple fixes and optimizations under architectures such as riscv, arm, aarch64, arc, etc., improving performance and stability .
● Implemented default weak function for rt_hw_cpu_shutdown .
● Added cfi information of gdb unfolding program for aarch64, arm cortex-a, risc-v .
🔧 Tools:
● Supported more BSP driver compilations , ensuring wider hardware compatibility .
● Added CI process , improving project maintainability .
● Added llvm-arm 16.0 support , and added llvm-arm workflow .
● Added function to filter files that do not need cppcheck for file_check.py .
● Added — add-rtconfig parameter for scons , used to add macro definitions during build .
● Fixed issue where c99 and gnu options could not be selected in Keil-MDK .
Fixed deque problem with Env[‘CPPDEFINES’] in scons version 4.5.0 or above .
🔄 Action:
Added CI to compile more changed BSP drivers , added pkgs-test ; added manual trigger and failed BSP check ; added more configurations for manual trigger .
Added repo check ; added review request for code_owner ; added paths-ignore for format and static check .
Added manual trigger for all STM32 , added exp_STM32 SCons .
Refactored and optimized ci execution process , and added manual trigger and cppcheck check for scons dist .
📦 BSP:
Added some new bsp:
● ST: imx6ull, stm32u585-iot02a, stm32f405zgtx, stm32h563-st-nucleo, stm32h563-st-nucleo, stm32f407-rt-spark, stm32f334-st-nucleo, stm32l496-st-discovery
● SOPHGO: cv1800b
● TI: msp432e401y-LaunchPad
● APM32: apm32e103ze-evalboard, apm32e103ze-tinyboard, apm32f030r8-miniboard
● AT32: at32f423-start
● Essemi: es32vf2264
● Imxrt: imxrt1061-forlinx-OK1061-S
● Renesas: ra6m3-hmi-board
● Yichip: yc3122-pos
● Bouffalo_lab: bl808/d0
Fixed some issues:
- Fixed atomic volatility issue in bsp/simulator when compiling in VS2019 .
- Fixed mismatched function type of rt_pin_ops in all drv_gpio.c.
🎉The unveiling of version v5.0.2 is a testament to the relentless dedication and hard work of our developers. A heartfelt thank you for your invaluable contributions to the RT-Thread community! Together, we’re making RT-Thread better and more user-friendly! 💪
Here’s a roll call of our amazing contributors from the mainline v5.0.0 to v5.0.2 (in no particular order):
A standing ovation for developers like Shisan, yanghaiyong, lepus, guo, Junjie Wang, Zheng-Bicheng, Legend, XYZ, zhouminquan, Shicheng Chu, Tennn11, Wayne Lin, liYangYang, cmbjxxiao, Yuqiang Wang, Supper Thomas, zmq810150896, sp-cai, Siwei Xu, Fan YANG, dejavudwh, yuanzihao, DingDing, Eric LGF, Mr.M, yby, liYony, Cheng Mengmeng, 1ridic, vacabun, LTreeshu, Frogrey, Shell, zbtrs, wangqinglin, wusongjie,bxhsiman , XYZboom , flyingcys , WCX , kurisaW , zan319 , Man Jiangting(Meco) , Fan Yang , KunYi Chen , xyz , Jay , cx , geniusgogo , zhugengyu , FragrantRye , Donocean , zhangyan , xqyjlj , GuEe-GUI and many more.
We also extend our gratitude to companies such as NXP、Renesas、Infineon、Nuvoton、Xilinx、Geehy、Xiaohua、Artery Technology、Qingdao Eastsoft、and the Institute of Software of the Chinese Academy of Sciences PLCT Laboratory for their significant contributions to this version update!