在做cc1310开发时,node节点需要省电,希望不工作时降低功耗。
我在node程序中新建了task,然后用任务的方式执行task的函数,如下:
while(1)
{
/* Wait for an event */
uint32_t events = Event_pend(eventHandle, 0, EVENT_ALL, BIOS_WAIT_FOREVER);
if(events & EVENT_SAMPLE)
{
}
}
想请问下,当没有事件触发的时候,while循环会一直等待event的发生,那么这个时候系统是处于什么工作模式呢?(基于tios系统,没有其它任务在执行)
多谢!
Eggsy Pang:
如果没有其他任务在执行,CPU处于idle模式
Felix ZF:
如果没有event发生,这个task会被Event_pend block掉,scheduler会看是否有优先级比这个task低的就绪task,如果较低优先级的user task则执行,如果没有,就会执行系统的idle_task,这时,系统可以进入sleep状态