这是两种RTOS, 现在粗略比较一下。
freeRTOS比uCOS II优胜的地方:
1。内核ROM和耗费RAM都比uCOS 小,特别是RAM。 这在单片机里面是稀缺资源,uCOS至少要5K以上, 而freeOS用2~3K也可以跑的很好。
2。freeRTOS 可以用协程(Co-routine),减少RAM消耗(共用STACK)。uCOS只能用任务(TASK,每个任务有一个独立的STACK)。
3。freeRTOS 可以有优先度一样的任务,这些任务是按时间片来轮流处理,uCOSII 每个任务都只有一个独一无二的优先级。因此,理论上讲,freeRTOS 可以管理超过64个任务,而uCOS只能管理64个。
4。freeRTOS 是在商业上免费应用。uCOS在商业上的应用是要付钱的。
freeRTOS 不如uCOS的地方:
1。比uSOS简单,任务间通讯freeRTOS只支持Queque, Semaphores, Mutex。 uCOS除这些外,还支持Flag, MailBox.
2。uCOS的支持比freeRTOS 多。除操作系统外,freeRTOS只支持TCPIP, uCOS则有大量外延支持,比如FS, USB, GUI, CAN等的支持
3。uCOS可靠性更高,而且耐优化,freeRTOS 在我设置成中等优化的时候,就会出问题。
***********************
期待大家的意见
我认为这个是个硬伤:uCOSII 每个任务都只有一个独一无二的优先级,而没有按时间片来轮流处理的同级任务
如 我要在屏幕上同时显示两个任务的运行输出状况简直没法做
比较下RT-Thread的情况:
接楼主的文章,
1、RAM,ROM情况
RT-Thread,最小型配置,~ 8K ROM,~ 3K RAM
但32位以外的单片机没试过,不知道是否还有可优化的地方
2、RT-Thread只能使用线程方式的任务,需要为每个不同的线程开辟相应的栈空间,一个线程的控制块代价是128字节
3、RT-Thread也能够使用优先级相同的线程,优先级相同的线程按照时间片轮转进行调度
4、RT-Thread同样是免费的,并在0.2.4版本以后提供免费的技术支持(仅包括内核、移植、相关的组件)!
文中说的不如的地方,
1、RT-Thread提供完整的任务间通信机制,semaphore,mutex,mailbox,message queue,event(类似ucos中的flag)
和商业实时操作系统NucluesPlus相比,缺少pipe、signal的支持。也缺少NucluesPlus中的HISR支持。
2、RT-Thread目前只能提供有限的组件支持,0.2.4版包括TCP/IP和finsh shell。0.3.0版中包括filesystem和GUI --> 下一步0.3.0马上就要开始进入beta发布周期了,文件系统和GUI的代码也很快逐步和大家见面。动态模块加载应该也是在0.3.x系列版本中和大家见面。
3、RT-Thread的可靠性显然还没ucos高,但用得多了可靠性也会慢慢提升上去,报出了的bug我们会及时修正。
开始部分的第4点再着重说明一下,为了普及RT-Thread在国内的应用,有打算从0.2.4版本开始,http://www.rt-thread.org论坛提供为期一年的免费技术支持,在0.2.4正式版发布时会有进一步的说明。