【问题标题】:Do interrupts hold their state when GLOBAL INTERRUPT is disabled?当 GLOBAL INTERRUPT 被禁用时,中断是否保持其状态?
【发布时间】:2016-06-21 22:22:00
【问题描述】:

所以考虑全局中断被禁用,现在定时器或任何其他可屏蔽中断来了,这不会被服务。但它是否设置了各自的标志? 当我重新启用全局中断时,它会在以后提供服务吗?

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

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

【问题讨论】:

    标签: embedded interrupt


    【解决方案1】:

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

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

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

    【讨论】:

    • @Anurag,当重新启用全局掩码时,将尊重任何单独的中断标志(也启用)。轮询时读取和清除它们的方式与中断它们时相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 2018-07-21
    相关资源
    最近更新 更多