在RTOS基础上再封装一层API。
更换项目中所使用到的RTOS。
例如将freertos项目替换为ucos RTX liteos等其他RTOS。
只需更改该CMSIS-OS的API所调用的RTOS的API。
更换RTOS的意义何在?????????
CMSIS-RTOS2 文档翻译 之 通用 RTOS 接口
CMSIS-RTOS2 是一个通用的 API ,不受底层 RTOS 内核的影响。应用程序员在用户代码中调用 CMSIS-RTOS2 API 函数以确保从一个 RTOS 到另一个 RTOS 的最大可移植性。使用 CMSIS-RTOS2 API 的中间件可以避免不必要的移植工作。
STM32 FreeRTOS CMSIS—OS
FreeRTOS:CMSIS_V1与CMSIS_V2区别
可以看出,对于普通玩家来说cmsis_os.c只是把FreeRTOS的xTaskCreateStatic/ xTaskCreate等接口重新封装了一遍,没有什么区别;重新封装的目的大致为:让玩家不用关心FreeRTOS内部调用关系,只管用就行了。
一起来学习 系统封装接口层- CMSIS-OS 之freeRTOS
在这个实时操作系统泛滥的年代,有这么一个系统封装接口层还是蛮有必要的。前些时间偶然间在STM32最新的固件库中就发现了这个系统封装接口,当时就把自己所用的系统进行封装。直到最近KEIL5.0发现其中所到的RTX系统也进行了同相的封装。对比了下感觉很有必要和大家分享一下。
采用这个接口层写程序,基本上可以说不用再去管所用的是什么操作系统。相同的代码可以轻而易举的移植到不同的实时系统中。不敢说完全没有改动,但绝对是最少的。其简洁的书写手法,也会给我的应用层带来视觉上的体验感,使用可以尽可能去关注应用。