空闲任务负责释放 RTOS 分配给 自此被删除的任务的内存。因此,在 使用 vTaskDelete() 函数以确保空闲任务没有缺少 处理时间。 空闲任务没有其他激活函数,因此可以在所有其他条件下合理地缺乏使微控制器时间。
应用程序任务可以共享空闲任务优先级 (tskIDLE_PRIORITY)。 请参阅 configIDLE_SHOULD_YIELD 配置参数 了解如何配置该行为的信息。
必须始终有至少一个任务已准备好运行。 因此,必须确保钩子函数不能调用 任何可能导致空闲任务阻塞的 API 函数 (例如,vTaskDelay () ,或 带有阻塞时间的队列或信号量函数 )。协例程可以在钩子函数内阻塞。
这是一种更灵活的解决方案,但具有更高的 RAM 使用开销。
要创建一个空闲钩子:
void vApplicationIdleHook( void );
[返回顶部]