1. 任务挂起与恢复的API函数
任务的创建和删除本质就是调用uC/OS-III的API函数
注意:这两个函数不允许在中断中调用
2. 任务挂起函数介绍
void OSTaskSuspend( OS_TCB* p_tcb, OS_ERR* p_err )
- 此函数用于无条件地挂起任务, 被挂起的任务不会参与任务调度,如果被挂起的任务是当前正在运行的任务,那么就会发起任务调度,将 CPU 的使用权交给另一个任务
- 无论优先级如何,被挂起的任务都将不再被执行,直到任务被恢复
- 注意:当传入的任务控制块的指针为0,则代表挂起任务自身(当前正在运行的任务)
任务挂起的本质:将任务从就绪列表中暂时移除,不再参与运行
3. 任务恢复函数介绍
void OSTaskResume( OS_TCB* p_tcb, OS_ERR* p_err)
- 此函数用于恢复被函数 OSTaskSuspend()挂起的任务,并且只有该函数才能恢复被函数OSTaskSuspend()挂起的任务 。
- 可调用多次OSTaskSuspend()挂起同一个任务,解挂时需调用同样次数的OSTaskResume()才可恢复任务
恢复即把任务从新插入到就绪列表,继续运行
评论区