请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TDA4VM 您好!
当使用 CPSR 寄存器中的 I 位全局禁用中断时、我有一个与 VIM 运行方式相关的问题。
考虑以下情况。
我有两个中断 IRQ1 IRQ2、IRQ2的优先级高于 IRQ1。 在 IRQ1_ISR 中、我触发优先级更高的 IRQ2。
这里在 VIM 中启用了 IRQ1和 IRQ2。
IRQ1_ISR{
1./*执行了一些操作*/
2.使用 CPSR 寄存器的 I 位禁用 CPU 上的中断。
通过写入 irqraw 寄存器来触发 IRQ2。
4、禁用 VIM 中的中断 IRQ2。
5.使用 CPSR 寄存器的 I 位启用 CPU 上的中断。
6./*执行了一些操作*/
7、使能 VIM 中的中断 IRQ2。
8./*执行一些操作。 *
}
IRQ2_ISR{
/*执行一些操作*/
}
这里的问题是、IRQ2_ISR 何时将在步骤5之后或步骤7之后调用。 我想知道硬件引导中的行为(使用引导程序接口处理 IRQ)
以及软件引导(使用 MMR 接口为 IRQ 提供服务)方法。
如果我在 VIM 中通过写入步骤4中的 irqstatus 寄存器来清除中断 IRQ2、那么预期的序列也是一件事。
此致、
Thulasiram C