此内在函数禁用 IRQ 中断。
int __disable_irq(void)
Note
在 ARMv7 和 ARMv7-M 上,__disable_irq
内在函数具有以下原型:
void __disable_irq(void)
__irq
返回在禁用 IRQ 中断之前 IRQ 中断掩码在 PSR
中包含的值。
void foo(void)
{
int was_masked = __disable_irq();
/* ... */
if (!was_masked)
__enable_irq();
}
只能在特权模式(即非用户模式)下执行 __disable_irq
内在函数。
在用户模式下,此内在函数不会更改 CPSR
中的中断标记。