RTOS版本更新录(202x)
实时操作系统(RTOS)是底层软件的重要组成部分。其不仅仅是一个单一的实时操作系统内核,它也是一个完整的应用系统,包含了实时、嵌入式系统相关的各个组件。RT-Thread Studio 是一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。本文系从RT-Thread的产品主页分离出来的,专门用于该软件的更新记录,截止到2029年12月31日。
嵌入式设备都运行着RTOS、Linux系统有什么区别。
1. 实时性
实时性即保证任务在特定时间内完成。衡量一个实时操作系统坚固性的重要指标,是系统从接收一个任务,到完成该任务所需的时间,其时间的变化称为抖动。
可以依抖动将实时操作系统分为两种:硬实时操作系统及软实时操作系统,硬实时操作系统比软实时操作系统有更少的抖动:
硬实时操作系统必须使任务在确定的时间内完成。
软实时操作系统能让绝大多数任务在确定时间内完成。
实时性是嵌入式RTOS与嵌入式Linux最本质的区别。
实时性对比:
嵌入式RTOS:硬实时(μs级响应),中断延迟通常<10μs。具有强实时性,采用抢占式多任务调度算法,能确保关键任务在严格的时间期限内完成,响应时间可预测,适用于对实时性要求极高的场景,如工业自动化控制、航空航天等。
嵌入式Linux:Linux是作为通用操作系统开发的,其内核在实时处理能力上先天不足,需通过CONFIG_PREEMPT_RT补丁优化实时性,默认软实时(延迟>50μs),。虽然经过实时补丁等改进可实现一定的实时性,但本质上是分时操作系统,其内核不是专门为实时性设计,在处理高实时性任务时,响应时间存在不确定性,一般用于对实时性要求不苛刻的场景。
2. 内核架构
操作系统内核根据架构来分,可分为:宏内核(Monolithic kernel)、微内核(Microkernel)、混合内核(Hybrid kernel)。
其架构如下:

宏内核(Monolithic kernel):宏内核被视作为运行在单一地址空间的单一的进程,内核提供的所有服务,都以特权模式,在这个大型的内核地址空间中运作,这个地址空间被称为内核态(kernel space)。
微内核(Monolithic kernel):微核心的设计理念,是将系统服务的实现,与系统的基本操作规则区分开来。它实现的方式,是将核心功能模块化,划分成几个独立的进程,各自运行,这些进程被称为服务(service)。所有的服务进程,都运行在不同的地址空间。
混合内核(Hybrid kernel):混合内核结合了宏内核与微内核两种内核架构。混合内核的基本设计理念,是以微内核架构来设计操作系统内核,但在实现上则采用宏内核的作法。混合内核实质上是微内核,只不过它让一些微核结构执行在用户空间的代码执行在内核空间,这样让内核的执行效率更高些。
内核架构对比:
嵌入式RTOS:多为微内核(如Zephyr),无虚拟内存管理(无MMU),系统调用为直接函数调用。内核通常很精简,只包含基本的任务调度、内存管理、中断处理等功能,以保证系统的高效运行和快速响应,可根据具体需求进行高度定制。
嵌入式Linux:宏内核,依赖MMU实现虚拟内存,需用户/内核态切换(syscall接口)。内核相对庞大复杂,支持多用户、多任务,具备完善的内存管理、进程调度、文件系统等功能,提供了丰富的系统服务和接口,但也因此占用更多的资源。
3. 资源需求
嵌入式RTOS:由于内核精简,对硬件资源要求较低,可在资源有限的微控制器(MCU)等设备上运行,如一些简单的传感器节点、小型智能设备等。
嵌入式Linux:因功能丰富、内核复杂,需要较多的硬件资源支持,通常运行在具有一定处理能力和内存空间的微处理器(MPU)上,如工业控制计算机、智能终端等。
4. 安全性
嵌入式RTOS:系统功能相对单一,代码量小,经过严格的测试和验证,安全漏洞相对较少,且可针对特定安全需求进行定制化设计,适用于对安全性要求极高的安全关键系统。
嵌入式Linux:开源特性使其容易受到安全威胁,不过开源也便于社区及时发现和修复安全漏洞。同时,通过安全增强技术如SELinux等可提高其安全性,适用于对安全性有一定要求但非绝对安全关键的场景。
5. 学习难度/开发难度
嵌入式RTOS:学习和开发相对简单,其功能集中在实时任务处理,开发框架和API相对简洁,开发者主要关注任务的划分、调度和通信等,适合初学者和对实时性开发经验较少的人员。
嵌入式Linux:学习和开发难度较大,涉及内核原理、文件系统、网络协议等复杂知识,开发过程需要掌握多种工具和技术,如交叉编译、内核裁剪、驱动开发等,对开发者的技术水平和经验要求较高。
6. 核心内容
嵌入式RTOS:核心是实时任务调度和管理,确保任务在规定时间内完成,重点关注任务的优先级分配、时间片管理以及任务间的同步与通信。
嵌入式Linux:核心是提供一个通用的、功能丰富的操作系统平台,支持多种应用开发,包括文件系统管理、网络服务、设备驱动等,以满足不同领域的多样化需求。
7. 网络能力
嵌入式RTOS:网络功能相对较弱,需集成轻量级协议(如LwIP)。通常只支持基本的网络协议,如简单的TCP/IP协议栈,以满足实时数据传输需求,对于复杂的网络应用支持有限。
嵌入式Linux:具有强大的网络功能,支持完整的网络协议栈,包括TCP/IP、UDP等多种协议,能轻松实现网络服务器、网络客户端等复杂网络应用,适用于需要频繁进行网络通信的设备,如网络路由器、智能网关等。
8. 开发方式
嵌入式RTOS:开发方式相对简单,通常使用特定的集成开发环境(IDE),如IAR、Keil等,配合相应的开发板进行开发。开发环境配置相对容易,主要关注任务的编写和调试。
嵌入式Linux:开发方式较为复杂,需要搭建交叉编译环境,涉及到宿主机和目标机之间的通信和协作。常用的开发工具有GCC、Make等,开发过程需要进行内核编译、驱动开发、文件系统制作等多个环节,开发环境的搭建和配置相对繁琐。
9. 学习资料
嵌入式RTOS:学习资料相对丰富,主要集中在特定的RTOS产品手册、官方文档以及一些专业的嵌入式开发书籍上。
嵌入式Linux:学习资料非常丰富,有大量的书籍、在线文档、开源项目以及活跃的社区论坛,如Linux内核官方文档、Linux公社等,开发者可以方便地获取各种技术知识和解决方案。
10. 运行功耗
嵌入式RTOS:由于系统简单,在运行时可以根据任务需求灵活控制硬件资源的使用,能较好地实现低功耗管理,支持μA级休眠模式(STOP/STANDBY),动态电压频率调节(DVFS)优化能耗。适用于电池供电的设备,如物联网传感器节点等。
嵌入式Linux:因内核复杂,需要持续运行多个后台进程和服务,对硬件资源的使用相对较多,运行功耗一般较高(通常>100mW),但通过一些节能技术和优化措施,如电源管理框架(如CPUFreq),也可在一定程度上降低功耗,适合插电设备。
11. 启动速度
嵌入式RTOS:毫秒级启动,启动速度快,内核初始化时间短,能在短时间内完成系统启动并进入工作状态,满足一些对快速启动有要求的应用场景,如工业控制中的紧急响应设备。
嵌入式Linux:秒级启动,启动过程涉及U-Boot引导、内核加载、文件系统挂载、服务启动等多个环节,启动速度相对较慢,一般需要几秒到几十秒的时间,不过对于一些非实时性要求高的设备,如智能电视等,启动速度的影响相对较小。
12. 驱动开发
嵌入式RTOS:驱动开发相对简单,通常针对特定硬件平台提供简洁的驱动接口,开发者只需根据硬件特性和RTOS的要求编写基本的驱动程序,主要关注硬件的初始化和数据传输等功能。
嵌入式Linux:驱动开发较为复杂,需要深入理解Linux内核的驱动模型,如设备树、字符设备驱动、块设备驱动等,开发过程需要遵循严格的内核编程规范,涉及到大量的内核代码编写和调试工作。
13. 应用开发
嵌入式RTOS:应用开发主要围绕实时任务展开,注重任务的逻辑实现和时间控制,开发语言一般以C、C++为主,开发框架相对简单,主要用于实现特定的实时控制功能。
嵌入式Linux:应用开发更加多样化,支持多种编程语言,如C、C++、Python等,可借助丰富的库和框架进行开发,能实现包括图形界面、网络应用、数据处理等在内的复杂应用。
14. 图形用户界面开发
嵌入式RTOS:本身对图形用户界面(GUI)的支持有限,若要实现GUI,需要额外添加专用的轻量级GUI库(如LVGL、emWin),且功能相对简单,适用于对界面要求不高的设备,如简单的工业控制终端。
嵌入式Linux:有丰富的GUI库和工具,如Qt、GTK等,能开发出功能强大、界面美观的图形用户界面,适用于智能终端、车载信息娱乐系统等对用户体验要求较高的设备。
15. 岗位发展路线、前景
嵌入式RTOS:岗位发展路线主要集中在实时控制系统开发、硬件驱动工程师等方向,随着工业自动化、智能制造等领域的发展,对掌握嵌入式RTOS技术的人才需求持续增长,尤其是在汽车电子、航空航天等高端制造业,具有较好的发展前景。
嵌入式Linux:岗位发展路线较为广阔,可从事内核开发工程师、系统移植工程师、应用开发工程师等多种岗位。在物联网、人工智能、智能交通等热门领域有广泛应用,市场需求大,发展前景良好,且由于技术难度较高,相关人才的薪资待遇也相对较高。
看完上面的对比后,该如何选择呢:

RT-Thread Studio v2.0 已于2020年12月中旬发布,这是一个大版本更新,带来了许多重磅的新功能以及新特性。
1.集成PlatformIO生态系统
PlatformIO是一个集成了极其丰富资源的嵌入式开发生态系统,现在通过Studio新建工程向导,新的“通用工程”类型入口,选择基于PlatformIO创建工程,就可以无缝进行相关代码编辑,工程构建,程序下载,调试等开发工作。PlatformIO目前支持的41个平台,23个框架,924个开发板,222个例程,10595个库资源在RT-Thread Studio里均可选择和使用(PlatformIO资源包安装时间需要几分钟,需要耐心等待)。
2.ART-Pi SDK更新
新的SDK更新包V1.1.0实现了许多新功能。在Studio的SDK Manager里安装ART-Pi V1.1.0新版资源包后,在新建工程时注意选择V1.1.0版本即可采用新版本。关于ART-Pi更多资料和教程可以访问ART-Pi官方站点获取。
ART-Pi V1.1.0 SDK更新的主要特性如下:
增加 网络音乐播放器 的工程(使用柿饼GUI)
增加 柿饼GUI lib,FTP lib,TOUCHGFX lib
增加 TOUCHGFX适配不同分辨率的屏幕
增加 摄像头OV2640驱动,配置引脚即可使用
增加 RTC支持,FDCAN驱动,USB HOST驱动(目前支持读写U盘)
增加 SPI FLASH下载算法
增加 多媒体和工控扩展板的图纸,常见问题解答文档
完善 USB Device驱动
完善 代码贡献手册
更新 PIN框架
更新 ETH驱动,使用工业扩展板,通过Studio一键开启以太网
修正 SDRAM初始化时间过长的问题
修正 BT_STACK中放开宏ENABLE_LOG_INFO时编译错误的问题
修正 未开启SPI FLASH FS时编译报错的问题
修正 MPU设置的片外FLASH容量错误的问题
修正 SD卡热插拔的问题
3.支持J-Link远程下载调试
本次更新根据需要提供了完善的远程下载和调试支持,只需要将J-Link连在远端机并启动远端的JLinkRemoteServer,然后在本机修改调试配置指定IP连接方式和IP地址即可远程操控”千里之外“的远端J-Link进行下载调试。
4.支持查看开发板详情
在Studio先前版本里,只有在创建工程的时候才可以浏览到开发板详情和开发板自带文档,创建完工程如果想再次去查找浏览一下开发板详情信息或者文档是很不方便的。现在基于开发板创建的工程,在工程内预留了一个开发板详情查看入口,随时想查看,双击它即可。
5.QEMU支持网络仿真
老版本Studio的QEMU仿真支持多种类型的开发板,并且支持VEXPRESS-A9的网络仿真,这次更新STM32F4的开发板也加入了QEMU网络仿真支持,使用者可以在没有STM32F4开发板的情况下进行网络功能仿真。
6.支持Rebuild构建
当需要先清理工程后再重新全量构建工程时,以前需要先后进行两步,现在只需要点击工具栏上Rebuild按钮即可一气呵成地完成整个清理和重新构建的过程。
以上是主要的更新亮点,更多功能细节的优化和完善请上手体验和发现!
升级指南
对于已经安装过Studio的用户,打开Studio即可自动检测并升级到V2.0.0版本,没有安装的可以到如下地址下载安装V2.0.0完整安装包(建议不要覆盖安装)。
最新版本:1.2
实现roadmap中提到的大部分内容
1,文档方面已完成《RT-Thread编程手册》,同时还有论坛上jiezhi童鞋的《一起来学RT-Thread系列连载教程》
2,BSP分支方面新增cortext-A8(beaglebone),cortext-R4(rm48x50),UNITY-2(SEP6200),lpc408x的移植
3,组件方面:
- 加入msh(类似linux shell的风格),能够直接执行应用程序
- 新增freemodbus 1.6.0的移植、Ymodem协议、使用lwIP 1.4.1
- 新增开源的嵌入式关系数据库SQLite 3.8.1的移植
最新版本:3.0
RT-Thread 3.0 针对物联网终端的高度碎片化和低资源占用要求,引入了专门的配置工具和包管理器,实现系统的高度可裁剪可定制;基于物联网的多样化通讯和连接方式,优化并支持丰富的 IoT 协议以及 WiFi、NB-IoT 等无线连接。此外,还支持主流的云服务,兼容 POSIX 标准。
最新版本:5.0
RT-Thread 5.0 现已2023年4月发布,该版本将 RT-Thread smart 分支合并到主分支上,后续将与主线版本一同维护;增加了 RT-Thread Smart 特性,支持用户模式;除此之外,还为增加了原子特性,对调度器文件进行功能拆分;在组件层面还新增 tmpfs 文件系统,增加 musl libc 支持并完善了 POSIX 的支持;在 bsp 层面,新增了约 40 + 个 bsp 等。官方公告从内核、组件、libcpu、bsp、tools 等几个方面对 5.0.0 的更新进行详细说明,并针对 Smart 特性展开讲解。
内核部分
增加 RT-Thread Smart 特性,支持用户模式应用(Smart 将展开说明)。
添加原子特性。
增加嵌套互斥功能。
增加 rt_ssize_t 数据结构。
为 rt_object 添加静态名称。
采用新版本宏定义版本控制规范。
将 scheduler.c 拆分。
修复了 AC6 编译器在 memheap 中的 Oz 优化问题
修复 rt_memset 与字大小无关的问题。
修改 RT_ALIGN_SIZE 默认为 8。
组件部分
添加 FDT (扁平设备树),TMPFS, CRomFS
Libc:增加 musl libc 支持与完善 Posix 支持。
LWP:
增加更多系统调用支持。
增加 mm (虚拟内存管理层) 特性,提高时钟精度。
网络:增加 AF_UNIX 特性。
驱动设备:
改进:传感器,spi, i2c,UART,can, usb, cpu_time, sdio, pwm 等。
libcpu
arm:cortex-a 恢复安全 MMU 初始化,cortex-m7 改变函数 rt_hw_cpu_dcache_ops 的返回类型为 rt_uint32_t 等。
risc-v:支持非缓存的普通内存,增加 rt_backtrace 函数等。
aarch64:增加 rt_backtrace 函数,当没有空闲页面时停止。
tools
提升的 ci 功能,添加 scons 命令:scons—exec-path=xxx, scons—exec-prefix=,scons—dist—target=xxx, scons—strict, scons—dist—project-path=xxxx,等。
bsp
增加了支持 smart 的 bsp:D1/D1s, raspberry, qemu-vexpress-a9, qemu-virt64-aarch64, qemu-virt64-riscv 等。
Renesas:ra6m3
Infineon PSoC6:062s2, 062s3-4343w, 062s4, 062-wifi-bt, 062-ble
nuvoton:numaker-iot-m467, numaker-m467hj, numaker-hmi-ma35d1
nxp:LPC55S16, LPC55S36, LPC55S06, LPC5528, LPC55S28
nrf5xxx:nrf5340
gd32:gd32470z-lckfb, GD32303C-START
apm32:
apm32f030r8-miniboard, apm32f051r8-evalboard, apm32f091vc-miniboard 等
n32:n32g43xcl-stb, n32g457qel-stb, n32g45xcl-stb 等
mm32:mm32f3270-100ask-pitaya
at32:at32f421-start, at32f425-start
stm32:stm32f723-st-disco
phytium:aarch32, aarch64
其他:core-v-cv32e40p, air32f103, YS-F1Pro 等等
RT-Thread Smart 说明
如果 RT-Thread 开启了 Smart 特性, 就变成了一个混合微内核操作系统,可以简称为 RT-Smart 或 Smart,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间(32 位系统上是 4G 的独立地址空间)。以下是 5.0.0 版本上 Smart 部分的详细说明/使用说明:
Smart 平台
支持 Smart 开发的 BSP 列表:
qemu-vexpress-a9
qemu-virt64-aarch64
qemu-virt64-riscv
raspberry-pi
imx6ull-100ask-smart
imx6ull-artpi-smart
Smart 特性使能
打开 RT-Thread 源码,在支持 Smart 的 BSP 路径下打开 Env,配置 Smart 特性,使能 “RT-Thread Kernel → Enable RT-Thread Smart(microkernel on kernel/userland)”:
Smart 用户态应用功能
用户态应用与内核相互独立,并不存在于 rt-thread 源码中,用户态应用功能如下:
支持基本应用加载
支持 POSIX PSE51 标准接口
支持外设、网络功能
支持 RT-Thread 原生接口
支持 GNU 应用
Smart 用户态应用工程示例
用户态应用位于此处,如下是应用示例:
编译应用:在 userapps 目录下使用 scons 编译,编译顺利的话,将在 root 文件夹中得到一系列可执行 elf 文件,如下图所示,这是 userapps 下的多个用户态应用示例编译生成的可执行文件。
制作 sd 卡:在 userapps\tools\fatdisk 目录下有一个打包 FAT 格式文件的工具 fatdisk.exe,我们可以利用这个工具将我们要存储到 QEMU SD 卡里的文件打包成 sd.bin 文件。将 userapps 下的 root 目录复制到 env\tools\fatdisk 目录下,双击执行 fatdisk.exe 生成新的 sd.bin 文件。
VSCode 插件:RT-Thread Smart 插件的诞生方便了 Smart 应用的开发。打开 VSCode,在扩展中搜索 “rt-thread smart”,点击安装即可获得 Smart 插件。
更多详情可查看主页更新说明。
v5.2.0已于2025年3月下旬正式发布,此版本不仅是内核技术的重大升级,更标志着生态扩展、开发者支持与社区协作的全方位提升。以下是本次更新的详细内容与相关公布信息:
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 环境配置透明化,杜绝版本冲突。
c. 从 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. 移除线程测试冗余延迟,修复互斥锁竞争条件并新增递归锁测试案例。
嵌入式设备都运行着RTOS、Linux系统有什么区别。
1. 实时性
实时性即保证任务在特定时间内完成。衡量一个实时操作系统坚固性的重要指标,是系统从接收一个任务,到完成该任务所需的时间,其时间的变化称为抖动。
可以依抖动将实时操作系统分为两种:硬实时操作系统及软实时操作系统,硬实时操作系统比软实时操作系统有更少的抖动:
硬实时操作系统必须使任务在确定的时间内完成。
软实时操作系统能让绝大多数任务在确定时间内完成。
实时性是嵌入式RTOS与嵌入式Linux最本质的区别。
实时性对比:
嵌入式RTOS:硬实时(μs级响应),中断延迟通常<10μs。具有强实时性,采用抢占式多任务调度算法,能确保关键任务在严格的时间期限内完成,响应时间可预测,适用于对实时性要求极高的场景,如工业自动化控制、航空航天等。
嵌入式Linux:Linux是作为通用操作系统开发的,其内核在实时处理能力上先天不足,需通过CONFIG_PREEMPT_RT补丁优化实时性,默认软实时(延迟>50μs),。虽然经过实时补丁等改进可实现一定的实时性,但本质上是分时操作系统,其内核不是专门为实时性设计,在处理高实时性任务时,响应时间存在不确定性,一般用于对实时性要求不苛刻的场景。
2. 内核架构
操作系统内核根据架构来分,可分为:宏内核(Monolithic kernel)、微内核(Microkernel)、混合内核(Hybrid kernel)。
其架构如下:

宏内核(Monolithic kernel):宏内核被视作为运行在单一地址空间的单一的进程,内核提供的所有服务,都以特权模式,在这个大型的内核地址空间中运作,这个地址空间被称为内核态(kernel space)。
微内核(Monolithic kernel):微核心的设计理念,是将系统服务的实现,与系统的基本操作规则区分开来。它实现的方式,是将核心功能模块化,划分成几个独立的进程,各自运行,这些进程被称为服务(service)。所有的服务进程,都运行在不同的地址空间。
混合内核(Hybrid kernel):混合内核结合了宏内核与微内核两种内核架构。混合内核的基本设计理念,是以微内核架构来设计操作系统内核,但在实现上则采用宏内核的作法。混合内核实质上是微内核,只不过它让一些微核结构执行在用户空间的代码执行在内核空间,这样让内核的执行效率更高些。
内核架构对比:
嵌入式RTOS:多为微内核(如Zephyr),无虚拟内存管理(无MMU),系统调用为直接函数调用。内核通常很精简,只包含基本的任务调度、内存管理、中断处理等功能,以保证系统的高效运行和快速响应,可根据具体需求进行高度定制。
嵌入式Linux:宏内核,依赖MMU实现虚拟内存,需用户/内核态切换(syscall接口)。内核相对庞大复杂,支持多用户、多任务,具备完善的内存管理、进程调度、文件系统等功能,提供了丰富的系统服务和接口,但也因此占用更多的资源。
3. 资源需求
嵌入式RTOS:由于内核精简,对硬件资源要求较低,可在资源有限的微控制器(MCU)等设备上运行,如一些简单的传感器节点、小型智能设备等。
嵌入式Linux:因功能丰富、内核复杂,需要较多的硬件资源支持,通常运行在具有一定处理能力和内存空间的微处理器(MPU)上,如工业控制计算机、智能终端等。
4. 安全性
嵌入式RTOS:系统功能相对单一,代码量小,经过严格的测试和验证,安全漏洞相对较少,且可针对特定安全需求进行定制化设计,适用于对安全性要求极高的安全关键系统。
嵌入式Linux:开源特性使其容易受到安全威胁,不过开源也便于社区及时发现和修复安全漏洞。同时,通过安全增强技术如SELinux等可提高其安全性,适用于对安全性有一定要求但非绝对安全关键的场景。
5. 学习难度/开发难度
嵌入式RTOS:学习和开发相对简单,其功能集中在实时任务处理,开发框架和API相对简洁,开发者主要关注任务的划分、调度和通信等,适合初学者和对实时性开发经验较少的人员。
嵌入式Linux:学习和开发难度较大,涉及内核原理、文件系统、网络协议等复杂知识,开发过程需要掌握多种工具和技术,如交叉编译、内核裁剪、驱动开发等,对开发者的技术水平和经验要求较高。
6. 核心内容
嵌入式RTOS:核心是实时任务调度和管理,确保任务在规定时间内完成,重点关注任务的优先级分配、时间片管理以及任务间的同步与通信。
嵌入式Linux:核心是提供一个通用的、功能丰富的操作系统平台,支持多种应用开发,包括文件系统管理、网络服务、设备驱动等,以满足不同领域的多样化需求。
7. 网络能力
嵌入式RTOS:网络功能相对较弱,需集成轻量级协议(如LwIP)。通常只支持基本的网络协议,如简单的TCP/IP协议栈,以满足实时数据传输需求,对于复杂的网络应用支持有限。
嵌入式Linux:具有强大的网络功能,支持完整的网络协议栈,包括TCP/IP、UDP等多种协议,能轻松实现网络服务器、网络客户端等复杂网络应用,适用于需要频繁进行网络通信的设备,如网络路由器、智能网关等。
8. 开发方式
嵌入式RTOS:开发方式相对简单,通常使用特定的集成开发环境(IDE),如IAR、Keil等,配合相应的开发板进行开发。开发环境配置相对容易,主要关注任务的编写和调试。
嵌入式Linux:开发方式较为复杂,需要搭建交叉编译环境,涉及到宿主机和目标机之间的通信和协作。常用的开发工具有GCC、Make等,开发过程需要进行内核编译、驱动开发、文件系统制作等多个环节,开发环境的搭建和配置相对繁琐。
9. 学习资料
嵌入式RTOS:学习资料相对丰富,主要集中在特定的RTOS产品手册、官方文档以及一些专业的嵌入式开发书籍上。
嵌入式Linux:学习资料非常丰富,有大量的书籍、在线文档、开源项目以及活跃的社区论坛,如Linux内核官方文档、Linux公社等,开发者可以方便地获取各种技术知识和解决方案。
10. 运行功耗
嵌入式RTOS:由于系统简单,在运行时可以根据任务需求灵活控制硬件资源的使用,能较好地实现低功耗管理,支持μA级休眠模式(STOP/STANDBY),动态电压频率调节(DVFS)优化能耗。适用于电池供电的设备,如物联网传感器节点等。
嵌入式Linux:因内核复杂,需要持续运行多个后台进程和服务,对硬件资源的使用相对较多,运行功耗一般较高(通常>100mW),但通过一些节能技术和优化措施,如电源管理框架(如CPUFreq),也可在一定程度上降低功耗,适合插电设备。
11. 启动速度
嵌入式RTOS:毫秒级启动,启动速度快,内核初始化时间短,能在短时间内完成系统启动并进入工作状态,满足一些对快速启动有要求的应用场景,如工业控制中的紧急响应设备。
嵌入式Linux:秒级启动,启动过程涉及U-Boot引导、内核加载、文件系统挂载、服务启动等多个环节,启动速度相对较慢,一般需要几秒到几十秒的时间,不过对于一些非实时性要求高的设备,如智能电视等,启动速度的影响相对较小。
12. 驱动开发
嵌入式RTOS:驱动开发相对简单,通常针对特定硬件平台提供简洁的驱动接口,开发者只需根据硬件特性和RTOS的要求编写基本的驱动程序,主要关注硬件的初始化和数据传输等功能。
嵌入式Linux:驱动开发较为复杂,需要深入理解Linux内核的驱动模型,如设备树、字符设备驱动、块设备驱动等,开发过程需要遵循严格的内核编程规范,涉及到大量的内核代码编写和调试工作。
13. 应用开发
嵌入式RTOS:应用开发主要围绕实时任务展开,注重任务的逻辑实现和时间控制,开发语言一般以C、C++为主,开发框架相对简单,主要用于实现特定的实时控制功能。
嵌入式Linux:应用开发更加多样化,支持多种编程语言,如C、C++、Python等,可借助丰富的库和框架进行开发,能实现包括图形界面、网络应用、数据处理等在内的复杂应用。
14. 图形用户界面开发
嵌入式RTOS:本身对图形用户界面(GUI)的支持有限,若要实现GUI,需要额外添加专用的轻量级GUI库(如LVGL、emWin),且功能相对简单,适用于对界面要求不高的设备,如简单的工业控制终端。
嵌入式Linux:有丰富的GUI库和工具,如Qt、GTK等,能开发出功能强大、界面美观的图形用户界面,适用于智能终端、车载信息娱乐系统等对用户体验要求较高的设备。
15. 岗位发展路线、前景
嵌入式RTOS:岗位发展路线主要集中在实时控制系统开发、硬件驱动工程师等方向,随着工业自动化、智能制造等领域的发展,对掌握嵌入式RTOS技术的人才需求持续增长,尤其是在汽车电子、航空航天等高端制造业,具有较好的发展前景。
嵌入式Linux:岗位发展路线较为广阔,可从事内核开发工程师、系统移植工程师、应用开发工程师等多种岗位。在物联网、人工智能、智能交通等热门领域有广泛应用,市场需求大,发展前景良好,且由于技术难度较高,相关人才的薪资待遇也相对较高。
看完上面的对比后,该如何选择呢:

RT-Thread Studio v2.0 已于2020年12月中旬发布,这是一个大版本更新,带来了许多重磅的新功能以及新特性。
1.集成PlatformIO生态系统
PlatformIO是一个集成了极其丰富资源的嵌入式开发生态系统,现在通过Studio新建工程向导,新的“通用工程”类型入口,选择基于PlatformIO创建工程,就可以无缝进行相关代码编辑,工程构建,程序下载,调试等开发工作。PlatformIO目前支持的41个平台,23个框架,924个开发板,222个例程,10595个库资源在RT-Thread Studio里均可选择和使用(PlatformIO资源包安装时间需要几分钟,需要耐心等待)。
2.ART-Pi SDK更新
新的SDK更新包V1.1.0实现了许多新功能。在Studio的SDK Manager里安装ART-Pi V1.1.0新版资源包后,在新建工程时注意选择V1.1.0版本即可采用新版本。关于ART-Pi更多资料和教程可以访问ART-Pi官方站点获取。
ART-Pi V1.1.0 SDK更新的主要特性如下:
增加 网络音乐播放器 的工程(使用柿饼GUI)
增加 柿饼GUI lib,FTP lib,TOUCHGFX lib
增加 TOUCHGFX适配不同分辨率的屏幕
增加 摄像头OV2640驱动,配置引脚即可使用
增加 RTC支持,FDCAN驱动,USB HOST驱动(目前支持读写U盘)
增加 SPI FLASH下载算法
增加 多媒体和工控扩展板的图纸,常见问题解答文档
完善 USB Device驱动
完善 代码贡献手册
更新 PIN框架
更新 ETH驱动,使用工业扩展板,通过Studio一键开启以太网
修正 SDRAM初始化时间过长的问题
修正 BT_STACK中放开宏ENABLE_LOG_INFO时编译错误的问题
修正 未开启SPI FLASH FS时编译报错的问题
修正 MPU设置的片外FLASH容量错误的问题
修正 SD卡热插拔的问题
3.支持J-Link远程下载调试
本次更新根据需要提供了完善的远程下载和调试支持,只需要将J-Link连在远端机并启动远端的JLinkRemoteServer,然后在本机修改调试配置指定IP连接方式和IP地址即可远程操控”千里之外“的远端J-Link进行下载调试。
4.支持查看开发板详情
在Studio先前版本里,只有在创建工程的时候才可以浏览到开发板详情和开发板自带文档,创建完工程如果想再次去查找浏览一下开发板详情信息或者文档是很不方便的。现在基于开发板创建的工程,在工程内预留了一个开发板详情查看入口,随时想查看,双击它即可。
5.QEMU支持网络仿真
老版本Studio的QEMU仿真支持多种类型的开发板,并且支持VEXPRESS-A9的网络仿真,这次更新STM32F4的开发板也加入了QEMU网络仿真支持,使用者可以在没有STM32F4开发板的情况下进行网络功能仿真。
6.支持Rebuild构建
当需要先清理工程后再重新全量构建工程时,以前需要先后进行两步,现在只需要点击工具栏上Rebuild按钮即可一气呵成地完成整个清理和重新构建的过程。
以上是主要的更新亮点,更多功能细节的优化和完善请上手体验和发现!
升级指南
对于已经安装过Studio的用户,打开Studio即可自动检测并升级到V2.0.0版本,没有安装的可以到如下地址下载安装V2.0.0完整安装包(建议不要覆盖安装)。
最新版本:1.2
实现roadmap中提到的大部分内容
1,文档方面已完成《RT-Thread编程手册》,同时还有论坛上jiezhi童鞋的《一起来学RT-Thread系列连载教程》
2,BSP分支方面新增cortext-A8(beaglebone),cortext-R4(rm48x50),UNITY-2(SEP6200),lpc408x的移植
3,组件方面:
- 加入msh(类似linux shell的风格),能够直接执行应用程序
- 新增freemodbus 1.6.0的移植、Ymodem协议、使用lwIP 1.4.1
- 新增开源的嵌入式关系数据库SQLite 3.8.1的移植
最新版本:3.0
RT-Thread 3.0 针对物联网终端的高度碎片化和低资源占用要求,引入了专门的配置工具和包管理器,实现系统的高度可裁剪可定制;基于物联网的多样化通讯和连接方式,优化并支持丰富的 IoT 协议以及 WiFi、NB-IoT 等无线连接。此外,还支持主流的云服务,兼容 POSIX 标准。
最新版本:5.0
RT-Thread 5.0 现已2023年4月发布,该版本将 RT-Thread smart 分支合并到主分支上,后续将与主线版本一同维护;增加了 RT-Thread Smart 特性,支持用户模式;除此之外,还为增加了原子特性,对调度器文件进行功能拆分;在组件层面还新增 tmpfs 文件系统,增加 musl libc 支持并完善了 POSIX 的支持;在 bsp 层面,新增了约 40 + 个 bsp 等。官方公告从内核、组件、libcpu、bsp、tools 等几个方面对 5.0.0 的更新进行详细说明,并针对 Smart 特性展开讲解。
内核部分
增加 RT-Thread Smart 特性,支持用户模式应用(Smart 将展开说明)。
添加原子特性。
增加嵌套互斥功能。
增加 rt_ssize_t 数据结构。
为 rt_object 添加静态名称。
采用新版本宏定义版本控制规范。
将 scheduler.c 拆分。
修复了 AC6 编译器在 memheap 中的 Oz 优化问题
修复 rt_memset 与字大小无关的问题。
修改 RT_ALIGN_SIZE 默认为 8。
组件部分
添加 FDT (扁平设备树),TMPFS, CRomFS
Libc:增加 musl libc 支持与完善 Posix 支持。
LWP:
增加更多系统调用支持。
增加 mm (虚拟内存管理层) 特性,提高时钟精度。
网络:增加 AF_UNIX 特性。
驱动设备:
改进:传感器,spi, i2c,UART,can, usb, cpu_time, sdio, pwm 等。
libcpu
arm:cortex-a 恢复安全 MMU 初始化,cortex-m7 改变函数 rt_hw_cpu_dcache_ops 的返回类型为 rt_uint32_t 等。
risc-v:支持非缓存的普通内存,增加 rt_backtrace 函数等。
aarch64:增加 rt_backtrace 函数,当没有空闲页面时停止。
tools
提升的 ci 功能,添加 scons 命令:scons—exec-path=xxx, scons—exec-prefix=,scons—dist—target=xxx, scons—strict, scons—dist—project-path=xxxx,等。
bsp
增加了支持 smart 的 bsp:D1/D1s, raspberry, qemu-vexpress-a9, qemu-virt64-aarch64, qemu-virt64-riscv 等。
Renesas:ra6m3
Infineon PSoC6:062s2, 062s3-4343w, 062s4, 062-wifi-bt, 062-ble
nuvoton:numaker-iot-m467, numaker-m467hj, numaker-hmi-ma35d1
nxp:LPC55S16, LPC55S36, LPC55S06, LPC5528, LPC55S28
nrf5xxx:nrf5340
gd32:gd32470z-lckfb, GD32303C-START
apm32:
apm32f030r8-miniboard, apm32f051r8-evalboard, apm32f091vc-miniboard 等
n32:n32g43xcl-stb, n32g457qel-stb, n32g45xcl-stb 等
mm32:mm32f3270-100ask-pitaya
at32:at32f421-start, at32f425-start
stm32:stm32f723-st-disco
phytium:aarch32, aarch64
其他:core-v-cv32e40p, air32f103, YS-F1Pro 等等
RT-Thread Smart 说明
如果 RT-Thread 开启了 Smart 特性, 就变成了一个混合微内核操作系统,可以简称为 RT-Smart 或 Smart,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间(32 位系统上是 4G 的独立地址空间)。以下是 5.0.0 版本上 Smart 部分的详细说明/使用说明:
Smart 平台
支持 Smart 开发的 BSP 列表:
qemu-vexpress-a9
qemu-virt64-aarch64
qemu-virt64-riscv
raspberry-pi
imx6ull-100ask-smart
imx6ull-artpi-smart
Smart 特性使能
打开 RT-Thread 源码,在支持 Smart 的 BSP 路径下打开 Env,配置 Smart 特性,使能 “RT-Thread Kernel → Enable RT-Thread Smart(microkernel on kernel/userland)”:
Smart 用户态应用功能
用户态应用与内核相互独立,并不存在于 rt-thread 源码中,用户态应用功能如下:
支持基本应用加载
支持 POSIX PSE51 标准接口
支持外设、网络功能
支持 RT-Thread 原生接口
支持 GNU 应用
Smart 用户态应用工程示例
用户态应用位于此处,如下是应用示例:
编译应用:在 userapps 目录下使用 scons 编译,编译顺利的话,将在 root 文件夹中得到一系列可执行 elf 文件,如下图所示,这是 userapps 下的多个用户态应用示例编译生成的可执行文件。
制作 sd 卡:在 userapps\tools\fatdisk 目录下有一个打包 FAT 格式文件的工具 fatdisk.exe,我们可以利用这个工具将我们要存储到 QEMU SD 卡里的文件打包成 sd.bin 文件。将 userapps 下的 root 目录复制到 env\tools\fatdisk 目录下,双击执行 fatdisk.exe 生成新的 sd.bin 文件。
VSCode 插件:RT-Thread Smart 插件的诞生方便了 Smart 应用的开发。打开 VSCode,在扩展中搜索 “rt-thread smart”,点击安装即可获得 Smart 插件。
更多详情可查看主页更新说明。
v5.2.0已于2025年3月下旬正式发布,此版本不仅是内核技术的重大升级,更标志着生态扩展、开发者支持与社区协作的全方位提升。以下是本次更新的详细内容与相关公布信息:
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 环境配置透明化,杜绝版本冲突。
c. 从 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. 移除线程测试冗余延迟,修复互斥锁竞争条件并新增递归锁测试案例。