任务删除函数: void vTaskDelete( TaskHandle_t xTaskToDelete )
1.获取要删除任务的任务控制块

2. 把要删除的任务从就绪列表中删除

3.判断要删除的任务是否有等待事件发生,如果有的话从列表中删除。

4.如果要删除的任务是当前运行的任务时,把当前任务放到xTasksWaitingTermination 列表中,当下一次空闲任务运行的时候会把要删除任务的内存删除掉。uxDeletedTasksWaitingCleanUp意思是有多少个任务需要释放内存。

5.如果闪出的任务不是当前运行的任务时,1.任务总数减1, 2.删除任务控制块, 3.更新下一个任务的阻塞时间
6.如果任务调度器已经在运行,并且删除的任务是正在运行的任务,则进行一次任务切换。

本文详细解析了任务删除函数的工作流程,包括获取任务控制块、从就绪列表中删除任务、处理等待事件、调整任务调度及内存释放等关键步骤。

7218

被折叠的 条评论
为什么被折叠?



