UCOSIII OS_CRITICAL_ENTER()的疑问

[复制链接]
981|3
手机看帖
扫描二维码
随时随地手机跟帖
ckc1119|  楼主 | 2017-9-2 07:26 | 显示全部楼层 |阅读模式

#define  OS_CRITICAL_ENTER()                                       
         do {                                                      
             CPU_CRITICAL_ENTER();             //1                   
             OSSchedLockNestingCtr++;                              
             if (OSSchedLockNestingCtr == 1u) {                    
                 OS_SCHED_LOCK_TIME_MEAS_START();                  
             }                                                     
             CPU_CRITICAL_EXIT();               //2                   
         } while (0)


请问这里的1  和2  开关中断 到底有什么意义   去掉会怎么样

相关帖子

delin17| | 2017-9-2 13:33 | 显示全部楼层
你去看他的指令,你就明白,1,2的意义了。

使用特权

评论回复
feelhyq| | 2017-9-3 22:58 | 显示全部楼层
保证该全局变量原子操作

使用特权

评论回复
北辰东弋| | 2017-9-11 15:02 | 显示全部楼层
这是临界区处理吧, 1的时候保存了中断状态然后关闭了中断, 执行1和2之间的代码, 防止被中断打断, 2的时候恢复中断状态,

使用特权

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

本版积分规则

17

主题

78

帖子

1

粉丝