This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] J784S4XEVM:MCU_TIMER 中断问题

Guru**** 2478765 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1460681/j784s4xevm-mcu_timer-interrupt-issue

器件型号:J784S4XEVM

工具与软件:

我已将 MCU_TIMER 配置为每10ms 中断一次。

从上面的 VIM 屏幕截图中可以看出、GRP.IRQSTS/GRP.STS 和 IRQGSTS 寄存器已指示 IRQ 已发生。

ACTIRQ 具有正确的 IRQ 编号和正确的优先级、IRQVEC 具有正确的矢量

PRIIRQ 具有正确的优先级和 IRQ 编号、但未设置"有效"。

但中断矢量没有执行。  可能是什么原因?  SCTLR。 Veis 设置为1。  

当我尝试向  GRP.IRQSTS/GRP.STS 写入0x40或0xFF 以清除中断状态时、无法清除 IRQ 状态。 我不得不写信给 GRP。 用于清除中断状态的 INTR_EN_CLR。 我直接写入 VIM RAM 以避免来自调试器工具的错误。 看起来寄存器无法按预期工作。 为什么?

从计时器 CFG 寄存器中、当我写入 CFG_IRQSTATUS 时、我能够清除 IRQ 状态。 寄存器在计时器模块上按预期工作。

为了定期触发中断、我是否 需要清除两侧的 IRQ 状态:定时器模块和 VIM 模块?  如果是、清除 IRQ 的顺序是什么?

总结:

此处有3个问题:

1:为什么在 IRQ 检测到的事件中未执行 ISR 矢量?

2:为什么写入 VIM STS 寄存器不清除挂起的 IRQ?

3:序列使中断再次发生

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我发现、这是我的 ISR 问题;我用示例替换了 ISR