Cortex-M3/M4关闭与开启全局中断enable_irq()与disable_irq()
最近在开发基于Cortex-M4内核的MCU固件升级程序,在升级跳转前要关闭掉全部中断,清除掉pending的中断状态,然后再跳转到app程序。这里就需要使用到关闭全局中断的操作
还有一件事情,我们自研的Cortex-M3内核,我的研发同事在调试中断时发现我们设计好的中断就是不进入。这又是为什么呢?
先说结果吧!
第一种情景下,我们调用__disable_irq(),即可关闭全部可屏蔽中断,之后就可以干想干的事情了。
第二种情景下,我尝试着__enable_irq(),我们预期的中断就触发了。
这两个函数ARM公司的头文件已经帮我们设计好了,我们直接调用即可。但是一定要引用core_cm3.h或core_cm4.h的头文件哟~~