第5章 空闲任务与阻塞延时

在第4章中,任务中的延时使用的是软件延时,即还是让CPU空等来达到延时的效果。使用RTOS的优势就是充分发挥CPU的性能,永远不让它闲着。任务如果需要延时,也就不能再让CPU空等来实现延时的效果。RTOS中的延时叫作阻塞延时,即当任务需要延时时,会放弃CPU的使用权,CPU可以去做其他的事情,当任务延时时间到,将重新获取CPU使用权,任务继续运行,这样就充分利用了CPU的资源,而不是空等。

当任务需要延时而进入阻塞状态时,CPU在做什么?如果没有其他任务可以运行,RTOS都会为CPU创建一个空闲任务,这时CPU就运行空闲任务。在μC/OS-III中,空闲任务是系统在初始化时创建的优先级最低的任务,空闲任务主体很简单,只是对一个全局变量进行计数。鉴于空闲任务的这种特性,在实际应用中,当系统进入空闲任务时,可在空闲任务中让单片机进入休眠或者低功耗等操作。