【发布时间】:2018-05-06 00:58:16
【问题描述】:
我想知道如何在 STM32L4x6RG Nucleo 上禁用和启用中断?
经过一番谷歌搜索后,我找到了宏 __disble_irq() 和 __enable_irq(),但我不相信它们会禁用中断。
经过更多调查,这个宏映射到的 cpsid 指令似乎只有在它在主管上下文中运行时才有效。那么问题就变成了如何切换到主管模式以禁用中断并再次返回??
【问题讨论】:
-
为什么不呢?文档的哪一部分确实让您不确定。这些宏只是 CMSIS 的一部分——我建议阅读 ARM 网站上的文档,而不是“说服”与否。
-
当您尝试使用 ARM uC 做某事时,PS 谷歌搜索并不是最好的方法。互联网上充满了神话 - 最好阅读官方文档,这非常好。
-
您需要进行 SVC 调用才能进入特权模式。在 SVC 处理程序中,您可以通过更改控制寄存器的位 0 来更改为特权模式。查一下,网上有很多关于它的。