侧边栏壁纸
博主头像
thinkTV博主等级

喜爱动漫的二刺螈一枚,摩托车云爱好者(快要有车了)。 懂一点技术的在读生物医学工程研究生( •̀ ω •́ )✧,多多指教。

  • 累计撰写 127 篇文章
  • 累计创建 17 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

UCOSIII的任务挂起和恢复

thinkTV
2023-07-12 / 0 评论 / 0 点赞 / 118 阅读 / 345 字 / 正在检测是否收录...

1. 任务挂起与恢复的API函数

任务的创建和删除本质就是调用uC/OS-III的API函数

图片-1689144889004

图片-1689144895951

注意:这两个函数不允许在中断中调用

2. 任务挂起函数介绍

void OSTaskSuspend( OS_TCB*   p_tcb,   OS_ERR*   p_err ) 

图片-1689144965929

  • 此函数用于无条件地挂起任务, 被挂起的任务不会参与任务调度,如果被挂起的任务是当前正在运行的任务,那么就会发起任务调度,将 CPU 的使用权交给另一个任务
  • 无论优先级如何,被挂起的任务都将不再被执行,直到任务被恢复
  • 注意:当传入的任务控制块的指针为0,则代表挂起任务自身(当前正在运行的任务)

任务挂起的本质:将任务从就绪列表中暂时移除,不再参与运行

3. 任务恢复函数介绍

void OSTaskResume( OS_TCB*   p_tcb,   OS_ERR*  p_err) 

图片-1689145648846

  • 此函数用于恢复被函数 OSTaskSuspend()挂起的任务,并且只有该函数才能恢复被函数OSTaskSuspend()挂起的任务 。
  • 可调用多次OSTaskSuspend()挂起同一个任务,解挂时需调用同样次数的OSTaskResume()才可恢复任务

恢复即把任务从新插入到就绪列表,继续运行

0

评论区