引言
自 nano3.1.3 极简版本发布已经过去很长一段时间了,在此期间,我们不断的搜集社区的反馈信息:
nano是否可以加上device框架?
为什么默认不能动态创建线程?
FinSH移植时候,在编译时期不能明确的知道要移植哪些部分
使用 armclang 编译报错
…
根据这些反馈,我们认识到由于要做到极简,3.1.3版本经过裁剪默认仅保留了最少的系统功能,但这也导致了让部分用户在使用上不太顺手。因此,这次我们从使用方式上做了调整,发布3.1.5版本。具体的更新内容参见下面的文章。
修复 rt_mp_free 中 block = NULL 时的问题
修复 rt_memheap_detach 的 bug
修复 rt_timer_start 被打断,破坏定时器链表的问题
增加 mq value 溢出检查
添加 ipc 类型的最大值的定义
修复 delay_until 问题
修复 rt_timer_list_next_timeout 多任务安全问题
修复线程多次释放问题
修复 rt_thread_control 在处理 RT_THREAD_CTRL_CLOSE 命令时的问题
修复 mem.c 中 rt_realloc 可能造成内存泄漏的问题
解决timer代码依赖c99问题
当消息队列满时,使线程可等待在该消息队列上
移除 rt_console_set_device 中的 C++ 关键字
移除 memory_pool 结构体中的 suspend_thread_count 成员
libcpu 增加 CORTEX-M23/M33
add samples for gd32e230k-msh
add samples for lpc55s69-blink
更多更新记录详见发布版本中的 ChangeLog(https://github.com/RT-Thread/rtthread-nano/blob/master/rt-thread/ChangeLog.md)
由于不同架构时移植部分的代码也不相同,为了能兼容更多的架构,需要移植的部分以 #error TODO 提示的方式开放给用户,既提醒用户此处需要做匹配移植,也增强了代码的通用性。罗列如下所示:
#error TODO 1(系统启动必需):完成系统时钟配置
#error TODO 2(控制台打印需要):完成uart初始化,配置引脚、波特率等参数
#error TODO 3(控制台打印需要):完成rt_hw_console_output输出字符,实现使用 rt_kprintf() 打印输出
#error TODO 4(控制台输入需要):完成 rt_hw_console_getchar 获取字符,实现在控制台输入命令
所以,当你拿到 nano 3.1.5 的代码时,若编译出现以上4种错误,请不要惊慌,这只是一些移植提示,用户可以根据文档中心已经给出参考代码结合自己的芯片架构完成移植。
增加 device 框架的选择,用户可以根据喜好或使用习惯选择是否开启 rt-thread device 框架,
若用户选择 device 框架,则可以自行将驱动对接到device框架上,使用 device 统一接口操作外设驱动;
若用户偏好使用裸机驱动库方式开发,则可以不选择 device 框架。
在 nano 3.1.3 发布之后,就有用户反馈在3.1.3上没有device框架,如果能加上那就好了。所以在nano 3.1.5 上增加了 device 框架,习惯或偏爱使用 rt-thread device框架的用户,如果不想使用device框架也完全没有关系,你只需要关闭它即可。
问:如何关闭device框架?
答:在rtconfig.h中关闭 RT_USING_DEVICE即可。
FinSH组件的配置从 rtconfig.h 中移入到 FinSH 组件的finsh_config.h中,由rtconfig.h包含finsh_config.h头文件完成。组件的配置部分移出,主要是考虑以后nano可能会添加更多的组件,如果所有的配置项全部放在rtconfig.h 中,那么keil-pack和cubemx-pack以及在不同编译器下会产生不同的结果,会给用户造成疑惑。故而将组件软件包化,配置文件由各组件内部管理。
nano 文档更新,详见 RT-Thread 官方文档中心
(https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-nano/an0038-nano-introduction)
开源地址(请复制至外部浏览器打开):
https://github.com/RT-Thread/rtthread-nano
本次更新我们修复了之前版本的一些问题,优化了用户的使用体验,欢迎大家使用体验!如果使用过程中遇到了问题,欢迎到论坛发帖反馈!论坛板块地址:https://club.rt-thread.org/ask/tag/13.html
你可以添加微信17775982065为好友,注明:公司+姓名,拉进 RT-Thread 官方微信交流群!