选用Keil-RTX的优势
Keil-RTX是armkeil官方推出的适用于M3/M4内核的RTOS。RTX主要针对M3/M4内核进行优化,它独特之处,在于它中断延时对M3/M4内核可以实现零等待,是带有免版税,确定性的RTOS。在stm32平台上选用Keil-RTX相对于embOS, uCOS 和 FreeRTOS 的优势分析如下:
1.移植的难易程度
如果不打算看 RTX 的源码,或者说以源码的形式展现在 MDK 工程里面。 RTX 的移植应该是所有 RTOS里面移植最简单的(与 embOS, uCOS 和 FreeRTOS 比较),用户只需在 MDK 里面使能即可使用:
配置页面2.上手难易程度
KEIL 官方有一句话说的非常好, 基本每个中间件都这种类似的话。
The library handles the low-level USB requests without the need to write the hardware layer code. Developers can focus on the application's request rather than concentrating on the specialties of the USB protocol。我们推出这些中间件的目的就是让客户不必为移植协议和底层驱动而烦恼,所有的这些我们都已经写好,用户只需关注应用即可。实际的测试中的确是这样的。
3.实时性
这里仅说说反映 RTOS 实时性的其中两个重要指标。 一个是中断延迟时间,另一个就是任务切换时间,因为使用 CM3 或者 CM4 内核, RTX 系统可以实现零中断延时,也就是跟裸机情况是一样的。其它 4 款RTOS 都无法实现达到这个性能指标。 中断延时时间方面, RTX 完胜。下面就是任务切换时间的比较:
任务切换时间比较从上面的测试可以看出, RTX 的优势很明显, 其实除了任务切换时间外,信号量,事件标志,消息邮箱的实时性都比其它 4 款 RTOS 的强劲。
4.RTX 有完善的中间件
这个是非常重要的一条, RTX 有完善的中间件, RL-FlashFS, RL-USB, RL- TCPnet。这些中间件使用也是可以快速上手,这就是优势。更重要的是, RL-FlashFS(支持 nandflash,带擦写均衡,坏块管理和 ECC) 和 RL-USB 也稳定好用, KEIL 官方提供了在各种处理器平台下完整的驱动, 用户只需添加后即可使用。
5.升级到 MDK5.XX 版本后调用、调试更方便
如果使用的是 MDK5.XX 版本的话, RTX 及其中间件的使用更加简单。只需在 MDK5 的 RTE 环境中添加即可使用。 只不过到了 MDK5 版本后, RTX 有了个新的名字叫 CMSIS-RTOS RTX,这个是 ARM官方在 RTX 的基础上加了一层封装,后续的版本也不再单独发布 RTX 了,而是发布 CMSIS-RTOS RTX。
MDK5 对操作系统配置:
debug调试支持非常好,可查看各线程堆栈使用情况、任务执行时间等丰富的信息。
任务执行时间查询 系统信息查询 任务堆栈使用查看其实 RTX 操作系统是一款充分发挥 CM3/CM4 内核 MCU 性能的实时操作系统, 所以才
有前面实时性的强劲表现。