RTOS版本更新录(202x)
2024-09-18 09:35:43 阿炯
实时操作系统(RTOS)是底层软件的重要组成部分。其不仅仅是一个单一的实时操作系统内核,它也是一个完整的应用系统,包含了实时、嵌入式系统相关的各个组件。RT-Thread Studio 是一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。本文系从RT-Thread的产品主页分离出来的,专门用于该软件的更新记录,截止到2029年12月31日。
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 插件。
更多详情可查看主页更新说明。
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 插件。
更多详情可查看主页更新说明。