UCOSIII——临界区、任务挂起与恢复

本文介绍了UCOSIII操作系统中临界区和任务挂起与恢复的概念。当多个任务并行运行时,由于任务切换可能导致printf函数输出不完整。为解决此问题,可以使用临界区,在进入临界区时暂停其他任务,确保函数执行不被打断,执行完毕后立即退出并恢复任务调度。此外,任务挂起允许选择性地挂起特定任务,如需确保任务四运行,需挂起任务一、二、三,完成后恢复它们的调度。
摘要由CSDN通过智能技术生成

UCOSIII——临界区、任务挂起与恢复

UCOSIII——临界区、任务挂起与恢复

在UCOS3中,宏观定义上讲述,多个任务同时运行

简单的理解临界区与任务挂起

假设任务一和任务二的优先级一样
两个任务中都有printf函数的调用
那么任务一和任务二在程序运行的时候会互相打断
导致printf函数输出的内容不完整

如何解决呢
可以在任务将要被调度(打断)前进入临界区
函数执行完毕后
必须立刻退出临界区,恢复任务调度


/*进入临界区:锁定内核,停止任务调度,
还有阻塞函数、睡眠函数禁止添加在临界区里面,会失效*/ 
OS_CRITICAL_ENTER(); 

printf("Print complete sentences"); 

//立即退出临界区:解锁内核,恢复任务调度
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值