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.

[参考译文] TMS570LC4357:FIQ 和 IRQ 中断处理

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/770193/tms570lc4357-fiq-and-irq-interrupt-handling

器件型号:TMS570LC4357

尊敬的先生:

我的应用程序代码中有两个中断子例程。 一个是2ms 的周期性计时器中断。 另一个是 UART 接收中断。 我不确定两者是否都在工作。 我认为计时器中断正常工作,但 UART 接收中断不会一直工作,因为一旦 UART 中断以 scinoertification ()的形式写入,该 LED 就会亮起。  尽管 LED 会亮起、但并非每次都如此。 解决方法。 我知道计时器中断具有 FIQ 的最高优先级。 不应跳过 UART 中断。 我希望在定时器中断子例程完成后为 UART 中断 ISR 提供服务(如果在任何情况下都重叠的话)。

如何解决??

此致、

Deepak

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Deepak 您好!
    ARM CPU 为中断请求提供两个矢量-快速中断请求(FIQ)和正常中断请求(IRQ)。 FIQ 的优先级高于 IRQ、FIQ 中断可能会中断 IRQ 中断。
    假设您使用 RTI 模块每2ms 生成一次中断、则 RTI 中断可能是 FIQ 的 IRQ、具体取决于您的设置。
    UART 中断也是如此。 映射到编号较低的通道的 IRQ 的优先级高于映射到编号较高的通道的 IRQ。 可以在 VIM 模块中更改通道映射。 有关中断处理方式的更多信息、请参阅器件 TRM 中的第19章。
    LED 可能会亮起、但时间间隔很短、您可能会错过它。 您可以在代码中放置断点并检查是否生成中断。 另一种方法是在 ISR 中切换引脚、并使用示波器监控此引脚。 您可以为寄存器中断添加计数器、然后在调试时检查计数器等。

    此致、
    米罗