ucos 创建 空闲任务的目的

时间:2021-07-16 10:36:30
几乎任何操作系统都需要有空闲任务。

因为CPU(提供CPU级休眠的不算)没办法停下来,尤其是嵌入式系统这一块。

CPU停下来的唯一情况就是断电了,而要保持操作系统任何时候都能及时的对外做出响应,就必须有一个任务在那等着,这个任务就是Idle,大部分操作系统上都需要有这个任务。

普通的CPU如果停下来,就收不到任何外部中断或者别的东西了,跟死机没区别,所以CPU不能停。

当然了,也有能进入省电模式的CPU,这个另说,通用的设计是必须要保留空闲任务的。

简单的说就是 咱们的CPU  上电后就一直是转动的 ,必须的有个任务给人间捧场,让他继续转动,不能  停下来,,因为我们的UCOS  号称是RTOS  实时操作系统,想让Z自己做到实时,,就必须一直等待,等待响应,不能休眠。还有,咱们的空闲任务是没有延时的。是一直处于就绪状态,没高优先级任务他就就溜达,IDLE,HAHA  真正任务切换是OSTimeTick();

OSTimeTick()中将每个用户任务控制块OS_TCB中的时间延时项OSTCBDly减1(就是在任务中OSTimeDly();所设定的延时时间减一)。当某任务的任务控制块中的时间延时项OSTCBDly减到了零,这个任务就进入了就绪态。