
RT-Thread v5.2.0 已正式发布,此版本不仅是内核技术的重大升级,更标志着生态扩展、开发者支持与社区协作的全方位提升。
以下是本次更新的详细内容与相关公布信息:
1 核心亮点:重新定义实时性与效率
原子操作与低功耗优化
a. 支持动态 Tick 补偿,通过 rt_tick 设置任意值功能,实现休眠唤醒后系统时钟的智能校准,典型场景下功耗显著降低 ,尤其适用于电池供电的 IoT 终端设备。
b. 提升原子操作优先级,通过 RT_USING_STDC_ATOMIC 优先使用标准库实现,增强多核场景下的数据一致性。
c. 全新 rt_completion 无锁算法,定时器分辨率提升约12%,显著提高并发场景下的响应效率,显著优化传感器数据采集与实时控制场景。
多核(SMP)架构升级
a. 新增非阻塞式 smp_ipi_call函数,支持多核间异步任务分发。
b. 移除冗余内存操作与锁竞争,多核实时任务吞吐量显著优化。
内存与资源管理
a. 修复 SLAB 内存管理器在 memcheck 和 memtrace 中的异常调用问题,增强内存泄漏检测能力。
b. 在smart模式下启用“回收线程“以修复线程挂起的bug。
新API与配置选项
a. 新增 rt_hw_cpu_id() 接口,简化多核环境下CPU核心标识获取。
b. 分离 klibc 的 Kconfig 配置,新增 RT_USING_CI_ACTION 选项,支持更灵活的构建配置。
工具链与编译支持
a. 引入 kerrno.h、kstring.h 和 kstdio.h 标准化头文件,提升代码兼容性。
b. 支持 rt_packed 属性,优化结构体内存对齐效率。
代码健壮性优化
a. 强化线程创建时的参数校验,防止非法时间片参数导致的系统异常。
b. 修复 rt_exit_critical_safe 返回值误用问题,确保临界区保护逻辑可靠。
调试与诊断新利器
a. 新增CPU/线程使用率统计,支持动态生成资源占用热力图,助力快速定位性能瓶颈。
b. 引入 rt_interrupt_context 系列接口,规范中断嵌套层级变量类型,提升中断处理鲁棒性。
c. 增强回溯服务,优化异常日志输出格式,支持嵌套中断上下文记录。
2 关键模块升级
驱动生态全面增强
a. 修复 virtio 网络接收错误,提升虚拟化场景稳定性。
b. 传感器框架新增电源检测类型、传感器设备查找功能,同步 sensor_v1 的更改、修复 sensor v2 首次探测传感器设备时发生的错误。
c. USB 协议栈重构,CherryUSB v1.4.3 全面替换旧协议栈。
d. SPI/QSPI 稳定性提升,修复死锁与配置异常、修复 spi 配置会执行两次的问题、使 CS 引脚配置在系统中固定、统一软件 SPI 配置、spi 设备驱动框架添加引脚初始化功能。
e. CAN 总线安全加固,修复内存溢出与中断竞争问题。
网络协议栈进化
a. AT 组件重大更新,支持 SERIAL_V2,优化大数据传输稳定性,修复at套接字信号量释放异常。
b. LwIP 增强,新增多设备独立 DNS 服务,新增以太网协议钩子函数,支持定制化网络协议扩展。
c. 套接字功能扩展,新增 SIOCGIFINDEX 命令与 ifindex 路由配置,强化网络设备管理能力。
文件系统与存储革新
a. DFS v1 修复 ISO9660 构建、修复 cat 命令以输出实际长度。
b. DFS v2 重磅升级,新增 procfs 支持,实时监控系统资源;修复 cromfs 内存越界,优化嵌入式只读文件系统性能;支持pwrite/pread,提升数据库类应用效率。
c. SDIO 驱动增强,支持 HS400 模式 与 UHS-I 高速传输,修复 ART-PI smart 无法读取 emmc/sd 分区的问题。
开发工具链更新
a. DM 2.0 设备模型支持ATA AHCI、reset controller、 hardware mailbox、PHY(外部)、SCSI 总线、DMA 管理、 IIO (工业I/O)、PCI/PCIe,支持 milkv-duo rt-smart,新增通用 sdhci 驱动,支持 pio&&sdma,新增 PWM cool fan,新增支持 AMP 模式 ,新增支持 AMP 中的 PIC mailbox。
b. Finsh 调试增强,新增线程绑核命令、控制台动态切换,调试效率翻倍;
c. POSIX 兼容性提升,修复 C++11 thread_local 析构顺序问题,优化 aio/mmap 接口,加速跨平台应用迁移。
3 优化内核架构
AArch64 架构性能突破
a. 优化高地址内存映射(>1GB),修复未映射漏洞。
b. 修复 rt_hw_secondary_cpu_bsp_start() 多核启动逻辑,支持动态栈切换。
c. 原子操作重构:采用高效内存屏障策略。
Arm Cortex-M 实时性增强
a. 硬件线程支持,新增独立中断管理 API,允许定制化中断策略。
b. C11 原子自旋锁,减少锁竞争开销。
c. Cortex-M7 优化,启用硬件原子操作。
RISC-V 生态全面升级
a. 统一代码架构,整合 RV64/32 启动流程,修复信号处理栈错误,修复回溯中的参数传递问题,适配 common64。
b. MMU 强化,支持 ARCH_REMAP_KERNEL,修复 ASID 兼容性问题,助力高安全场景。
c. 向量计算支持,新增 RISC-V 向量指令集基础框架,为 AI 边缘计算铺路。
4 生态扩展:更广泛的硬件支持
新增硬件bsp支持
-
STM32:STM32H730、stm32h723-st-nucleo、stm32f407-lckfb-skystar、 stm32h7s7-st-disco、FK407M2-ZGT6。
-
Infineon:XMC7200。
-
HT32:ht32f53252。
-
HC32:lckfb-hc32f4a0-lqfp100。
-
MM32f526x:mm32f526x。
-
GD32:gd32e503v-eval、d32h759i-start。
-
Renesas:ra6e2-fpb、RZN2L-RSK、RZT2M-RSK、EtherKit。
-
Canaan:k230。
-
HPMicro:hpm6800evk、hpm6e00evk。
5 开发者体验:工具链全面进化
构建系统优化
a. 移除本地 kconfiglib,改用 pip install 一键安装,依赖管理更干净。
b. 新增 requirements.txt,Python 环境配置透明化,杜绝版本冲突。
d. 从 rtconfig.py 动态获取参数,减少冗余配置。
开发者工具增强
a. 新增 compile_commands.json 生成,修复 scons --target=iar --dist 命令。
b. 新增 clang-format 配置,支持一键代码格式化,统一团队风格。
c. 新增 install_env 脚本,5 分钟完成开发环境搭建,优化 env 工具链路径解析。
前沿技术适配
a. 语言支持扩展,新增 Zig 目标支持,支持 C++ 更多源文件类型。
b. 使用 pkgs --update-force 强制更新,依赖锁定更精准;设置 at_device 为严格模式,确保外设驱动稳定性。
6 Action
CI/CD 效率飞跃
a. 新增多项BSP 至自动化构建流水线(bsp_buildings.yml)。
b. CI Runner 迁移至 Ubuntu 22.04,支持最新工具链与安全补丁。
代码质量守护者
a. 新增 Cppcheck 深度集成,支持错误摘要与项目级扫描。
b. 支持 auto_utest 脚本,单元测试部署实时反馈。
7 文档更新:让学习更容易
Doxygen 优化
a. 为组和页面名称添加前缀,创建框架以统一 markdown 和源代码部分。
b. 介绍如何在 Ubuntu 上构建和运行 doxygen。
c. 为 doxygen 新增 pwm、touch、can、i2c、spi、pin、dac、rtc、adc 驱动示例。
嵌入式开发实战指南
a. 更新 STM32 BSP 制作教程。
b. 图解 SLAB 与 MEMPOOL 差异,新增碎片化治理实战案例。
8 单元测试
测试覆盖率飞跃
a. 新增 rt_memcpy、rt_memset、rt_memcmp 边界测试用例,覆盖 零拷贝、越界访问、异常对齐 等严苛场景。
b. 新增 SMP 调度压力测试、workqueue 异步任务稳定性验证,确保多核并发场景零死角。
c. 新增 uassert_float_equal 与 uassert_float_not_equal,支持浮点误差阈值配置,满足高精度控制需求。
测试框架增强
a. 新增 uassert_ptr_equal、uassert_ptr_not_equal,修复嵌套宏输出问题。
b. 移除线程测试冗余延迟,修复互斥锁竞争条件并新增递归锁测试案例。
注:版本日志内容较多,预知详情可点击链接查看版本发布日志
https://github.com/RT-Thread/rt-thread/blob/master/ChangeLog.md
还没有评论,来说两句吧...