embedded - 当全局中断被禁用时,中断是否保持其状态?

标签 embedded interrupt

因此,考虑到全局中断被禁用,并且现在出现了计时器或任何其他可屏蔽中断,这将不会得到服务。但它是否设置了各自的标志? 当我重新启用全局中断时,它会得到服务吗?

我的意思是问,当全局中断被禁用时,中断位是否从 0 设置为 1?

或者是这种架构特定的地方,在某些架构中,在全局中断禁用时保持中断状态并在重新启用时为它们提供服务,而某些架构只是错过它们!

最佳答案

这在某种程度上是 MCU 特定的,但通常全局中断掩码只是阻止中断执行。全局中断屏蔽位于CPU内核中(通常在条件码寄存器内),而中断源标志寄存器和中断使能寄存器位于硬件外设中。

您有一个硬件标志寄存器,它独立于硬件中断启用寄存器来设置其标志,该寄存器告诉标志寄存器中的哪些标志应该产生中断。而中断使能寄存器又独立于全局中断屏蔽。

因此,生成中断的硬件外设仍然会设置触发中断的标志,无论该标志是否会触发中断。通常,可以使用相同的标志来轮询硬件,而不是使用中断。因此,如果中断被禁用,它就需要工作。

关于embedded - 当全局中断被禁用时,中断是否保持其状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35859473/

相关文章:

c - 无优化 (-O0) 会导致嵌入式 MCU 崩溃

embedded - 没有操作系统的 TCP/IP 协议(protocol)栈

c - 重定向 VxWorks 串行输入

android - 在 Android 中如何停止正在等待新套接字的线程

android - 使用 Arduino 固件在 ESP8266 上附加中断

x86 - IA-32 上 self IPI 的目的

PHP exec 没有按预期运行我的脚本

embedded - 令人沮丧的 FreeRTOS xQueueCreate() 限制

windows - 64 位 Windows 中的程序集系统调用

assembly - 皮质-M3 : Changing Interrupt Return Address