8_ xTaskResumeAll恢复任务调度器
如何恢复任务调度器,恢复任务调度上下文切换?
[[#4 任务恢复调度例子]]
1.开启功能
修改配置文件:FreeRTOSconfig.h
2.函数接口
函数定义头文件:task.h
BaseType_t xTaskResumeAll( void );
3.函数参数与返回值说明
返回值:
-
返回 1(pdTRUE)
计划程序已转换为活动状态。这一转变引起了一场争论,将发生挂起的上下文切换。 -
返回 0(pdTRUE)
计划程序已转换为活动状态,但转换未成功导致发生上下文切换,
或计划程序处于挂起状态,由于对vTaskSuspendAll()的嵌套调用。
即被挂起了多次,而恢复次数不够发生,无法上下文切换。
注意:
可以通过调用vTaskSuspendAll()挂起计划程序。当调度程序运行时
挂起,中断保持启用状态,但不会发生上下文切换。如果上下文切换
在计划程序挂起时请求,则该请求将保持挂起状态,直到挂起为止
计划程序恢复(取消挂起)的时间。
挂起多少次就需要恢复多少次
对vTaskSuspendAll()的调用可以嵌套。必须调用相同数量的xTaskResumeAll()
与之前在调度程序之前对vTaskSuspendAll()所做的一样将离开挂起状态并重新进入活动状态。
xTaskResumeAll()只能从正在执行的任务中调用,因此不能被调用
当调度程序处于初始化状态(在调度程序启动之前)时调用。
当调度程序挂起时,不应调用其他FreeRTOS API函数
4.任务恢复调度例子
xTaskResumeAll();