在Cortex-M3内核中,可以使用__disable_irq()
函数来屏蔽所有中断。这个函数会将PRIMASK寄存器的值设置为1,从而禁用所有可屏蔽中断。
下面是一个简单的示例,演示如何在C语言中使用__disable_irq()
函数来屏蔽所有中断:
#include "core_cm3.h"//其中可以为cmsis_armcc.h/cmsis_gcc.h
void disable_interrupts() {
__disable_irq();
}
void enable_interrupts() {
__enable_irq();
}
请注意,__disable_irq()
函数只能屏蔽可屏蔽中断。不可屏蔽中断(NMI)和硬件错误中断(HardFault)仍然可以触发。此外,在使用__disable_irq()
函数屏蔽中断后,应谨慎使用,避免长时间禁用中断,以免影响系统的正常运行。
如果出现问题 跳转下一篇
/tmp/ccVJLYWf.s:589: Error: selected processor does not support
cpsid i' in ARM mode`