如何在ARM Cortex M0 +的NVIC中断中禁用嵌套?

时间:2017-08-21 05:07:24

标签: arm embedded interrupt-handling cortex-m

我已经开始使用ARM Cortex M0 +进行GPIO中断。我想从ARM中断中禁用嵌套功能。有没有办法做到这一点。我知道默认情况下,在ARM中启用嵌套,我想禁用它。

1 个答案:

答案 0 :(得分:3)

例如,ARM Cortex-M0 / M0 +不支持将中断优先级分组为M3 / M4 / M7上的抢占优先级(可嵌套)和子优先级(不可嵌套)。

如果您希望防止中断嵌套;它是必要的;

  • 将所有中断设置为相同的优先级,或
  • 禁止并重新启用进入和退出所有处理程序的中断。

这些选项中的第一个是最简单的,但不能控制执行顺序(这对于异步事件很少重要,但可能导致非确定性行为和时序)。第二个实际上不会阻止嵌套,但只允许在较低优先级中断禁用中断之前嵌套 - 在它开始处理实际事件之前。结果是类似于Cortex-M3等上可用的子优先级的行为。