CMSIS定义了硬件MCU的标准软件接口,我们在不同的CORTEX MCU之间移植程序时,可以非常方便。2012年,ARM在最新的CMSIS V3中居然加入了软件层面的RTOS接口,试图将所有的RTOS都纳入支持范围,虽然目前可以看到的实现仅仅有自家的RTX和mbed,但还是值得尝试。因为我们现在使用了不同种类的CORTEX M0/M3,且都有使用RTX操作系统,现在有点空闲时间,用了一个下午的时间,把一个小项目中的RTX接口调用全部替换成了CMSIS RTOS接口(RTX)调用,初步测试,居然顺利的跑起来了,呵呵,运气不错。
看了CMSIS RTOS的接口文档,有些地方还是没有RTX原来的接口丰富,比如原来的接口有isr_xxx函数和os_xxx函数之分,前者用在中断函数里面,后者用在TASK里面,而在CMSIS接口中,全部是osXXX的样式,通过强行设置timeout=0来在ISR中使用,虽然形式上不同,但功能上基本是等价的。
这个东西还是值得,以后若变更底层的操作系统,则会非常方便。