在进行单片机开发时,如果系统需要处理的任务或事件过多,裸机运行可能会遇到难以处理运行顺序的问题,如果设计不好,会导致其中的一些任务的实时性变差,随着单片机性能的增强,现在很多单片机都可以支持运行小型的嵌入式操作系统,在移植系统之后,就可以通过建立任务来轻松管理各个功能模块的并行,使程序更加清晰。并且大部分操作系统都具有内存管理、时间管理和事件管理,都便于设计者进行使用和访问。 但是面对这么多的微型操作系统,到底选择哪一款操作系统比较好呢,针对μC/OS-II、FreeRTOS、RT-Thread、RTX做一个简单的对比与学习推荐。 首先推荐的是μC/OS-II,μC/OS-II被广泛应用于微处理器、微控制器和数字信号处理器,很多学习STM32的人第一次使用操作系统就是移植的μC/OS-II,他是专门为嵌入式应用而设计的,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至 2KB。μC/OS-II提供了信号量、互斥信号量、事件标识、消息邮箱、消息队列、内存块管理等模块,除了没有文件系统管理,基本可以满足大部分的应用,移植μC/OS-II也非常简单,网上的资料也比较多,是个非常不错的选择,但是μC/OS-II虽然是开源软件,但是不是免费的,所以可以进行学习但是如果真正拿来做产品还是需要进行正版授权。
其次就是FreeRTOS,FreeRTOS也具有任务管理、时间管理、信号量、消息队列、内存管理功能模块,相比较与μC/OS-II,FreeRTOS编译之后一般可以更小,这对于单片机这种RAM本身就不富余的硬件平台来说会显得更加重要,在任务的优先级上,FreeRTOS是支持多个任务相同优先级,这个理论上FreeRTOS可以建立更多的任务,但是在任务之间的通信上面,FreeRTOS不支持FLAG信号和邮箱的应用,并且在系统的扩展融合方面不如μC/OS-II,μC/OS-II可以很好的跟μC/FS、μC/TCP-IP进行结合使用。FreeRTOS最大的一个优势就是商业上免费应用,这也使得FreeRTOS被采用的非常多,也是最推荐学习和使用的一款操作系统。
另一个比较推荐的操作系统是RT-Thread,这是来自中国的开源嵌入式实时操作系统,RT-Thread也是具有优异的实时性、可剪裁性,进行最小配置时,可以做到1k RAM 占用。学习RT-Thread最好的地方就是大部分资料都是中文的,毕竟是国内开发的,但是第一次移植的过程和后期的升级维护相对复杂,不仅要移植内核,还需要移植设备框架,并且具有标准版、nano版、smart版多个版本。RT-Thread可以商业上免费应用,没有商业风险,这也是比较推荐的主要原因之一。
最后介绍的一个是RTX,这是很多在KEIL环境下开发的人最方便用到一个操作系统,所有MDK-ARM版本都包含了RTX源代码,最大的优点就是内核感知调试支持MDK-ARM,也可以使用KEIL中的配置向导的基于对话框的设置,这个系统也是免费的,可以进行商业应用。
|