uC0S-II 临界代码开关中断操作的详解

                  uC0S-II 临界代码开关中断操作的详解

  1. 执行临界代码段前后进行中断的开发,是为了保护临界代码段的连续执行,防止中断触发导致临界代码段执行过程中被打断,

或CPU调度任务进行切换任务。导致代码执行发生异常。

 

两个函数:

OS_ENTER_CRITICAL()//关中断函数

OS_EXIT_CRITICAL()  //就是开中断函数

 

代码中应用示例代码如下:

这两个函数是uC/OS操作系统进入/退出“临界区”的功能代码,一般格式为:

 OS_CPU_SR cpu_sr=0;  //(1)这里定义了局部变量cpu_sr,如何就进行保存中断状态的???
 OS_ENTER_CRITICAL(); //(2) //如何让ucos系统CPU无法执行任务调度的???
  ..............

.(3)

.............
OS_EXIT_CRITICAL(); //(4) 

其中OS_ENTER_CRITICAL()就是关中断函数,而OS_EXIT_CRITICAL()就是开中断函数。

这几条命令代码的含义分别为:

(1)OS_ENTER_CRITICAL()和OS_EXIT_CRITIC()实现的方式是第三种:在关中断前,使用局部变量保存中断状态,所以需要先声明一个局部变量。

(2)作用是让ucos无法再执行任务调度,也就是执行(2)后,ucos处于关闭状态。

(3)区域用于处理比较连续的事情,不希望被ucos打断。

(4)用于恢复ucos的任务调度功能,重新开启ucos。

 

注意:用户的应用代码可以使用这两个宏来开中断和关中断。很明显,关中断会影响中断延迟,所以要特别小心。用户还可以用信号量来保护临界代码。

 

注:上文部分引用了其他博主的博客:https://blog.csdn.net/u012351051/article/details/50300645

 

 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值