//空闲任务 //描述:这个函数是uCOS-II内部函数,uCOS-II总要建立一个空闲任务,这个任务在没有其它任务进入 // 就绪态时投入运行。这个空闲任务永远设为最低优先级,即OS_LOWEST_PRIO.空闲任务不可能 // 被应用软件删除。 //注意:1)OSTaskIdleHook()可以允许用户在函数中写入自己的代码,可以借助OSTaskIdleHook(),让 // CPU执行STOP指令,从而进入低功耗模式,当应用系统由电池供电时,这种方式特别有用。 // 2)这个函数永远处于就绪态,所以不要在OSTaskIdleHook()中调用可以使任务挂起的PEND函数, // OSTimeDly()函数和OSTaskSuspend()函数 // void OS_TaskIdle (void *pdata) { #if OS_CRITICAL_METHOD == 3 //中断函数被设定为模式3 OS_CPU_SR cpu_sr; #endif pdata = pdata; //参数等于本身,防止一些编译器不能编译 for (;;) { //无限循环 OS_ENTER_CRITICAL(); //关闭中断 OSIdleCtr++; //32位空闲计数器加1,提供给统计任务消耗CPU事件 OS_EXIT_CRITICAL(); //打开中断 OSTaskIdleHook(); //空闲任务钩子程序 } }
OS_TaskIdle 函数
最新推荐文章于 2023-10-12 21:14:59 发布