前言
最近在看 free-rtos 的时候意外发现的一个有趣的国产操作系统:ms-rtos ,开始我以为只是一个换皮货或者高度定制版。但是看ms-rtos 介绍说其显著的特点是开创性地在没有 MMU 和资源受限的 MCU(如Cortex-M3)上也能支持多进程与动态装载技术,使得应用与系统能分离开发、独立升级;MS-RTOS 支持内核空间内存保护(应用程序通过 syscall 访问内核),使得内核有着非常高的安全性。MS-RTOS 在提供足够丰富功能的同时,保持了高效简洁的实现,对 ROM、RAM 消耗极低。
没有 MMU 和资源受限的 MCU(如Cortex-M3)上也能支持多进程与动态装载技术,这就有点意思了啊。MMU是啥?内存管理单元,这玩意抛弃了内存管理单元,玩起了多进程与动态装载技术。这是车子拆掉了方向盘一样可以开?
不过目前看上去东西有点少,好像只有官方支持的板子,我对这系统也不熟,也没啥资料,这里就先从官方的 IoT Pi 开始一步一步入手研究吧。
寻找官方资料
不知道为啥,无论是搜 ms-rtos 还是 IOT PI 都找不到这家官网,在别人博客里面看见好像是翼辉信息的产品,但是去他们官网也没找到 IOT PI 相关的东西,只找到一个 ms-rtos 的宣传页。最后最后,我去他们淘宝店才发现这么一个网址 开发者网站 而且这个网站名字还和 iot pi 和 ms-rtos 都没啥关系!!!!!这真是很不方便。
不过网站里面文档资料什么的该有还是有,文档写得也很详细,可以说保姆级教程了。
入手 IOT PI
IoT Pi 采用了主频高达100MHz的 Cortex-M4 处理器,拥有高达512KB的 FLASH 储存空间和256KB的RAM空间,保证流畅运行 MS-RTOS 和多个应用。 其实就是一个带了个WiFi模块 Cortex-M4 开发板,还挺好看的,主要卖点还他们支持的 ms-rtos 上,先把板子跑起来再说。
开发环境搭建时需要注意的问题
进入他们的开发者网址 进入设备开发里的指南,里面有一篇 iot pi 快速入门说得比较详细了,我就说一下我使用时遇到的坑,和解决办法。
- 在 开发工具下载 中下载他们的开发工具 **IoT Studio IDE 和 MS-RTOS AutoTester 调试工具 ** 还有 JLink 工具,他们的MS-RTOS AutoTester 调试工具需要依赖 JLink工具才能工作!!!,有了这三个工具就能把板子跑起来了,至于其他的工具,我还没研究出来怎么用。
- 我们下载下来的SDK是个壳子,你添加进去的时候IDE才会去下载这些组件,有可能会下载失败,这时候只要在IDE里面删除工程,重新添加一边就可以重新下载。
另外一定要注意一下编译SDK和BSP的时候,BSP会依赖SDK所以两者的 debug level 一定要统一!!! - 简单的尝试之后发现一些常见的 shell 指令,比如说 ls, cd 什么的是一样的,但是更多的还是得看官方的资料ms-rtos的shell命令
他们资料分类做得不是很好,这种第一时间常用的资料居然没放在显眼的位置,挺难找的。 - 跟着文档把 demo 烧进去的地址之后除了自动运行,还可以通过 exec 命令就能调起 输入:
exec 0x8040000 4096 4096 9 0 就可以把程序调用起来了,其中0x8040000 是你烧录程序的地址,后面的分别是储存内存大小,栈大小,优先级,时间片。 - 注意:他们 AutoTester 工具有点问题,按 RST 按钮重启 JLink 不会断开,导致大量乱码写入把程序搞崩,推荐点击 AutoTester 上的 GO 按钮重启系统就不会有这个问题,另外可以GO 之前最好敲一下 sync。
总结
iot pi 以及其搭配的 ms-rtos 确实是一个很有趣很新颖的小玩意,我对他们的在没有 MMU 和资源受限的 MCU(如Cortex-M3)上也能支持多进程与动态装载技术非常感兴趣。看官方上面还有好多有意思的东西,比如什么差分升级。但是我在他们官网发现另外一个好玩的东西 EdgerOS ,可以研究研究。
|