本帖最后由 小小小小白 于 2014-5-25 21:24 编辑
前几日看完了ucos-3这本书,在此说一下我对于RTOS的理解。我觉得ucos-3适合arm cortex-m系列的MCU。而ucos-2适合以往的8位、16位MCU。
以前只写了51单片机的裸机程序,大致结构就是main函数,初始化,然后while(1)。这种简单的结构叫做前后台系统。
这种简单的结构能处理少量的任务,对于多任务和实时性就会表现得力不从心。
UCOS-3具有任务管理机制和丰富的内核对象,并且是一个抢占式内核。在ucos-3,中,一切皆为任务,任务(或者ISR)和任务之间通过内核对象进行通信(如信号量,互斥型信号量,任务信号量,事件标志组,消息队列等)。在ISR中,通过调用API函数给对应的任务发信号,这样把ISR的代码放到任务里边处理,大大缩短了ISR的执行时间。
再说一下ucos-3的一些细节。ucos-3创建一个任务需要13个参数,而ucos-2只需要4个参数。支持任意数目的任务优先级别,允许多个任务有相同的优先级。优先级相等的任务采用时间片轮转调度算法。支持任意多个timer,实际上这些timer应该都是由一个硬件timersystick模拟的。这些“软”timer也支持回调函数,回调函数相当于硬件timer的ISR,但是实时性比不上真正的timer。
不早了,就先写到这儿。
@dianzijiangren
|