【发布时间】:2018-01-29 02:04:50
【问题描述】:
我已经开始使用 ARM Cortex M0+ 处理 GPIO 中断。我想禁用 ARM 中断的嵌套功能。有什么办法吗。?我知道默认情况下,嵌套在 ARM 中是启用的,我想禁用它。
【问题讨论】:
-
请阅读 ARM 社区网站上的 thread。可能这就是你需要的!
-
@anandamu16:你能详细说明你为什么需要这个功能吗?当然,您总是可以通过不使用多个优先级来禁用中断嵌套。 M0+ 缺少 Cortex M3 风格的可配置子优先级,但是如果您需要优先级仲裁,但不包括中断入口。在不了解特定要求的情况下很难为您提供帮助。老实说,次优先级屏蔽有点深奥,通常不需要,除非消除最后一个延迟周期,在这种情况下,我建议重新考虑使用完全抢占。
-
@Doynax:实际上我最近正在研究 Gpio 级别触发的中断。但是,一旦按下按钮,它就会给我多次中断(这是因为在按钮按下完成的时间内发生了多次中断)。我只想中断一次,直到 Gpio Handler 执行完成。我也不想禁用 GPIO 中断。此外,在 ARM Cortex M0+ 中断中默认启用嵌套是对的吗?
-
感谢 Gaurav 提供参考,我会检查链接
-
@anandamu16:恐怕我还没关注你。单个中断处理程序永远不会在 Cortex
M0+上抢占自身,而不会出现一些明显的扭曲。如果抢占中断源已设置为更高的优先级,则多个不同的中断处理程序(例如在两个 GPIO 端口上)可能会相互抢占。但是,默认情况下都配置为相同的优先级,因此除非您选择加入,否则不会发生这种情况。
标签: arm embedded interrupt-handling cortex-m