应用程序任务可以共享空闲任务优先级(tskIDLE_PRIORITY)。有关如何配置此行为的信息,请参阅configIDLE_SHOULD_YIELD 配置参数。
空闲任务钩子空闲任务挂钩是在空闲任务的每个周期中被调用的函数。如果您希望应用程序功能以空闲优先级运行,则有两种选择:在空闲任务挂钩中实现功能。
必须至少有一个任务已准备好运行。因此,hook函数不会调用可能导致空闲任务阻塞的任何API函数(例如,vTaskDelay()或具有阻塞时间的队列或信号量函数)。协同例程在钩子函数中被阻塞是可以的。
创建一个空闲优先级任务来实现该功能。
这是一个更灵活的解决方案,但具有更高的RAM使用开销。
有关使用空闲挂钩的更多信息,请参阅嵌入式软件应用程序设计一节。要创建一个闲置钩子:
在FreeRTOSConfig.h中将configUSE_IDLE_HOOK设置为1 。
定义一个具有以下名称和原型的函数:
void vApplicationIdleHook(void);
通常使用空闲挂钩功能将微控制器CPU置于省电模式。