FreeRTOS#5——任务调度器的挂起与恢复
·
任务调度器的挂起和恢复
- 挂起后,无法进行任务切换,防止任务与任务之间的资源抢夺
- 未关闭中断
vTaskSuspendAll()
-
void vTaskSuspendAll( void ) { ++uxSchedulerSuspended; } //uxSchedulerSuspended != pdFalse 则不进入PendSV中断,则不会进行任务切换
xTaskResumeAll()
- 进入临界区
- uxSchedulerSuspended–
- 判断任务数量
- 清空等待列表,加入到就绪列表(任务在中断中恢复时 加入等待列表 )
- 判断优先级最高任务 切换任务
- 更新阻塞任务时间
- 弥补 任务挂起时 滴答定时器丢失的节拍数
- 判断是否允许任务切换
更多推荐


所有评论(0)