打印
[应用相关]

OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()

[复制链接]
1308|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
paotangsan|  楼主 | 2019-7-5 09:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这两个函数是uC/OS操作系统进入/退出“临界区”的功能代码,一般格式为:

OS_CPU_SR cpu_sr=0;          ////(1)
  OS_ENTER_CRITICAL(); //(2)
  ..............

.(4)

.............
OS_EXIT_CRITICAL(); ///(3)



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


使用特权

评论回复
沙发
paotangsan|  楼主 | 2019-7-5 09:29 | 只看该作者
这几条命令代码的含义分别为:

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

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

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

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

(1)的作用是让ucos无法再执行任务调度,也就是执行1之后,ucos处于关闭状态. 
(2)区域用于处理比较连续的事情,不希望被ucos打断. 
(3)用于恢复ucos的任务调度功能.重新开启ucos. 

至于硬中断能否打断(2)的执行,就要看(1)里面是怎么做的 了.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

4119

帖子

0

粉丝