cortex_m3内核 屏蔽所有中断
在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`
本文作者:第9527号嵌入式菜鸟
本文链接:https://www.cnblogs.com/zhouxingxing7920/p/17579802.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步