cortex_m3内核 屏蔽所有中断

发布时间 2023-07-25 14:37:29作者: 第9527号嵌入式菜鸟

在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`