UCOSIII OS_CRITICAL_ENTER()的疑问
#defineOS_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开关中断 到底有什么意义 去掉会怎么样 你去看他的指令,你就明白,1,2的意义了。
保证该全局变量原子操作 这是临界区处理吧, 1的时候保存了中断状态然后关闭了中断, 执行1和2之间的代码, 防止被中断打断, 2的时候恢复中断状态,
页:
[1]