RT-Thread 5.0.0 发布
RT-Thread 5.0.0 现已发布,该版本将RT-Thread smart分支合并到主分支上,后续将与主线版本一同维护;即5.0.0版本增加了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添加静态名称(#6422)。
- 采用新版本宏定义版本控制规范:https://semver.org
- 将scheduler.c拆分(#7103)。
- 修复了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
新增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 用户态应用功能
Smart用户态应用与内核相互独立,并不存在于rt-thread源码中,用户态应用功能如下:
- 支持基本应用加载
- 支持 POSIX PSE51 标准接口
- 支持外设
- 支持网络功能
- 支持 RT-Thread 原生接口
- 支持GNU 应用
Smart用户态应用工程示例
用户态应用位于https://github.com/RT-Thread/userapps,如下是应用示例:
编译应用
在 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文件。
Smart VSCode插件
RT-Thread Smart插件的诞生方便了Smart应用的开发。打开VSCode,在扩展中搜索“rt-thread smart”,点击安装即可获得Smart插件。
smart插件SDK管理界面如下
打开某个应用,对应该进行编译安装。
Smart工具链下载
Smart工具链中
方法一:在userapps/tools 路径下使用命令下载:python get_toolchain.py [platform]
方法二:在Smart插件中点击“安装工具链”。
Smart运行GNU应用
Smart对POSIX接口有较好的支持,所以移植GNU应用到Smart上就变得简单。
方法一:手动增添一个应用工程,在应用工程中加入GNU应用。
方法二:使用RT-Thread Smart插件直接创建应用工程,加入GNU应用。
更多详情可查看更新说明。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Webpack v5.79.0 已发布,模块打包器
Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。Webpack v5.79.0 现已发布,具体更新内容如下: New Features webpack 现在将支持 treeshaking namespaced 的导入和DefinePlugin的简单解构方案#16941 Bug 修复 在DefaultStatsPrinter中截断极长的模块名称#16882 在DllPlugin的名称选项中添加[contenthash]模板支持#16935 修复了readRecordscompiler hook 在与ReadRecordsPlugin结合使用时导致挂起的问题#16944 webpack 现在可以使用由 webpack 的 esm 输出支持生成的 ESM 包#15608 [CSS] - webpack 现在尊重 CSS 对 atTags 的大小写不敏感,例如@MEDIA#16915 [CSS] - 修复了 crossOriginLoading anonymous 在加载样式时不起作用的错误#16925 Developer Experience 修复示例...
- 下一篇
RuoYi 4.7.7 发布,更多细节优化
若依管理系统 v4.7.7已发布,更新日志: 操作日志新增消耗时间属性 日志管理使用索引提升查询性能 日志注解支持排除指定的请求参数 新增监控页面图标显示 新增支持登录IP黑名单限制 更新fontawesome图标示例 屏蔽定时任务bean违规的字符 支持自定义隐藏属性列过滤子对象 连接池Druid支持新的配置connectTimeout和socketTimeout 升级jquery到最新版v3.6.3 升级layui到最新版本2.7.6 升级jasny-bootstrap到最新版4.0.0 升级oshi到最新版本6.4.1 升级druid到最新版本1.2.16 修复异步表格树子项排序问题 修复冻结列不支持IE浏览器的问题 修复主子表使用suggest插件无法新增问题 修复菜单栏快速点击导致展开折叠样式问题 修复用户多角色数据权限可能出现权限抬升的情况 修复异步加载表格树重置列表父节点展开异常问题 修复页签属性refresh为undefined时页面被刷新问题 移除apache/commons-fileupload依赖 优化前端属性提醒说明 优化用户导入更新时需获取用户编号问题 优化主...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境