RT-Thread Nano 3.1.3 正式发布
RT-Thread Nano 是 RT-Thread 的一版极简版实时内核,近几年来随着 RT-Thread 完整版迅速发展,小伙伴们把越来越多的目光聚焦到完整版上,从而淡化了对 Nano 版本的关注。但是在一些场合下,使用Nano版本更为合适。
Nano版本 VS. 完整版本
在做应用时,选择完整版本还是 Nano 版本?应该如何去选择呢?
RT-Thread完整版不仅仅是一个实时内核,还具备丰富的中间层组件,包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台,适用于需要使用RT-Thread的丰富功能,如各类外设、物联网组件、软件包等的场景。
RT-Thread Nano是一个极简的硬实时内核,系统开源,也是一款可裁剪的、抢占式实时多任务的 RTOS。它还具备体积小、启动快速、实时性高、占用资源小等特点,可用于家电、消费电子、医疗设备、工控等领域大量使用的 32 位 ARM 入门级 MCU 的场合。适用于系统资源紧张或是项目功能较为简单,仅需使用RTOS内核,无需丰富功能的场景。
从上图中可以看出RT-Thread Nano的架构:
-
极简版硬实时内核(可裁剪):内核包含线程管理、时钟管理、中断管理、内存管理、线程间同步与通信等功能,满足轻量级操作系统的基本要求。除此之外,内核对象可裁剪,开发者可根据需求来自定义所需的内核对象。
-
libcpu(CPU移植文件,对应相应的芯片架构) :Nano 中 libcpu 所支持的 CPU 主要是资源相对小一点的芯片架构(如 ARM,RISC-V),这部分内容来自完整版本 libcpu 的一部分。
-
FinSH 组件(可选配):是 RT-Thread 的 Shell 命令行组件,可实现命令行交互,满足简单调试需求。该版本的 FinSH 可以不再基于 device 框架进行移植,并且可以随时开启与关闭。
多途径下载
RT-Thread Nano 3.1.3 集成在多种 IDE 内部,可供小伙伴们下载的途径有:Keil MDK、STM32 CubeMX、RT-Thread Studio、或是直接 从官网下载源码压缩包。
在各大 IDE 中的下载教程请在文档中心查看。
从官网下载的 rtthread-nano 3.1.3 源码压缩包的目录结构如下所示,基本与完整版的目录保持一致:
文件夹名称 | 说明 |
---|---|
bsp | 示例代码 |
components/finsh | FinSH 组件源码,仅在移植FinSH时使用 |
docs | 说明文档 |
include | 头文件目录 |
libcpu | CPU 移植文件,支持 ARM、RISC-V 架构 |
src | RT-Thread Nano 内核源码 |
RT-Thread 3.1.3版本与之前版本最大的区别就是 不再包含device框架,finsh 移植也不依赖于device。其他的更新内容均从完整版本 3.1.3 同步而来,详细的修改请看 ChangeLog.md.
文档中心增加 Nano 版块
文档中心增加了Nano 版块,提供一系列的介绍、移植与移植原理的文档供大家参阅,小伙伴们可以根据这些文档做自己的移植:
-
《RT-Thread Nano 简介》
-
《基于 Keil MDK 移植 RT-Thread Nano》
-
《基于 IAR 移植 RT-Thread Nano》
-
《基于 CubeMX 移植 RT-Thread Nano》
-
《移植 RT-Thread Nano 到 RISC-V》
-
《RT-Thread Nano 配置》
-
《RT-Thread Nano 移植原理》
-
《在 RT-Thread Nano 上添加控制台与 FinSH》
Nano的特点
RT-Thread Nano 最大的特点是:极致简单、极致小巧、开源免费。
代码简单
Nano 与 完整版不同的是,Nano 代码纯净且简洁,在使用上又一次降低了门槛:
-
无 Scons 构建系统
-
无 Env 配置工具、无需 Kconfig
-
无 device 框架
移植简单
由于 Nano 的极简特性,使 Nano 的移植过程变得极为简单。添加 Nano 源码到工程,就已完成 90% 的移植工作。在 Keil MDK 与 Cube MX 中集成了 Nano 的软件包,可以一键下载加入到工程,而在RT-Thread Studio中,则可以基于某款芯片创建Nano的工程。
我们不仅提供了针对不同平台(MDK/IAR/CubeMX/RISC-V)的Nano移植教程,还提供了移植原理的文档,较为详细的讲解了移植的原理,如下是libcpu移植部分(黄色)与板级移植部分(绿色)在启动时的体现:
移植文件目录说明图:
详细内容请移步至文档中心查看。
配置简单
Nano的内核是可裁剪的,可通过修改 Nano 的配置文件 rtconfig.h实现(在 KEIL 与 CubeMX 中有配置面板),该文件中列出了内核中的所有宏定义,有些默认没有打开,如需使用,打开即可使用,如下图所示是Nano在 MDK中的配置界面,可以直接打钩使能以及修改参数值。具体的配置可见文档中心 Nano 版块的《RT-Thread Nano 配置》教程。
极致小巧
资源占用小:Nano 对 RAM 与 ROM 的开销非常小,在支持 semaphore 和 mailbox 特性,并运行两个线程 (main 线程 + idle 线程) 情况下,ROM 和 RAM 依然保持着极小的尺寸,RAM 占用约 1K 左右,ROM 占用 3.5K 左右。
注意:如果需要丰富的组件、驱动以及软件包等功能,则建议使用 RT-Thread 完整版,不建议在 Nano 版本上移植完整版本的组件。
开源免费(Apache 2.0)
RT-Thread Nano 实时操作系统遵循 Apache 许可证 2.0 版本,可以免费在商业产品中使用,不需要公布应用程序源码,没有潜在商业风险。
写在最后
不久之后,RT-Thread Nano 版本还将在 RT-Thread Studio 上实现无缝对接,可直接基于芯片生成 Nano 的工程,0 行代码即可实现 Nano 移植!除此之外,在 RT-Thread Studio IDE 上,基于 Nano 进行 FinSH 组件的移植也是非常简单,只需点一点鼠标,打开 FinSH 功能,就能自动生成驱动,轻松完成移植。敬请期待!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
技术分享 | UUID 很火但性能不佳?今天我们细聊一聊
作者:Yves Trudeau 翻译:管长龙 Yves 是 Percona 的首席架构师,专门研究分布式技术,例如 MySQL Cluster,Pacemaker 和 XtraDB cluster。 他以前是 MySQL 和 Sun 的高级顾问。拥有实验物理学博士学位。 原文链接:https://www.percona.com/blog/2019/11/22/uuids-are-popular-but-bad-for-performance-lets-discuss/ 如果你在网上快速的做一个关于 UUID 和 MySQL 的搜索,你会得到相当多的结果。以下是一些例子: 存储 UUID 和 生成列 在 MySQL 中存储 UUID 的值 说明 InnoDB 中的主键模型及其对磁盘使用的影响 主键选型之战 UUID vs. INT GUID / UUID 的性能突破 到底需不需要 UUID? 另:以上文章链接请在文章结尾处查看 那么,像这样一个众所周知的话题还需要更多关注吗?显然是的。 尽管大多数帖子都警告人们不要使用 UUID,但它们仍然非常受欢迎。这种受欢迎的原因是,这些值可以很容易...
- 下一篇
CopyTranslator 9.0.0“寒渐”发布,复制即翻译的外文辅助阅读翻译解决方案
欢迎反馈关于翻译格式,翻译效果不一致的问题。 本版本更新内容丰富,请务必查看更新日志以及新的使用指南 mac版本会延迟若干天更新 更新内容 增强: 删除点按复制功能,增加了更易使用的拖拽复制功能,并对拖拽复制触发时可能导致的问题作了说明。(拖拽复制使用说明详见使用指南) 全异步化remote操作使整体性能得到明显提升,页面加载/切换速度前所未有的快 在全局快捷键之外添加了一些局部快捷键(仅当焦点在copytranslator时才能使用),可用性仍待测试 按需打包Element UI,安装包体积减小,加载速度加快 添加悬浮提示,尚未完善 #126 Electron从3.0 升级到6.0安装包变大(这是我没有料到的) 分离查词引擎与翻译引擎。 增加引擎按钮以快速切换翻译引擎并指示当前主引擎 整合不同引擎,聚合物查词引擎及化合物翻译引擎会使用所有引擎查询,并缓存不同引擎的查询结果,让你在不同引擎切换时更快。 左键单击任务栏图标以强制显示窗口,如果你突然找不着窗口,可以试下。 可选的关闭即退出,关闭即退出默认打开,如果关闭,则只能通过任务栏图标右键菜单退出程序。 增加了复制按钮,左键单击复制译...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Mario游戏-低调大师作品
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker安装Oracle12C,快速搭建Oracle学习环境