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.

[参考译文] LAUNCHXL2-570LC43:使用 RTI 模块抢占相同优先级中断| TMS570LC4357

Guru**** 2680595 points

Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1591349/launchxl2-570lc43-preemption-of-same-priority-interrupt-using-rti-module-tms570lc4357

部件号: LAUNCHXL2-570LC43
Thread 中讨论的其他器件: TMS570LC4357

尊敬的 TI 团队:  

我们正在使用 TMS570LC4357 Launchpad 中的 RTI 模块来安排每 10ms 具有相同优先级 IRQ 的任务。 我们能够查看每 10ms 触发一次的中断。 其中我使用 VIM 通道 2、该通道映射到 rticomp0interrupt。 但当任务超过 10ms 时、下一个周期处于挂起状态、直到当前任务完成。  

根据我的要求、如果当前任务超过 10ms、我需要抢占当前任务并记录故障。 如果它在 10ms 内、则需要执行这些任务并等待下一个具有相同优先级的中断请求。  

请指导我解决这个问题。

谢谢。此致、  
Naveen R.

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

    尊敬的 Naveen:

    您看到的行为是 TMS570LC4357 中 ARM Cortex-R4F 内核的默认中断处理机制。 这就是为什么会发生这种情况:

    1.无具有相同优先级的硬件嵌套:默认情况下、当中断得到服务时、处理器会进一步禁用具有相同或更低优先级的中断。 这就是您后续 10ms 的原因
    中断被保持挂起。
    2. VIM 配置:TMS570 中的矢量中断管理器 (VIM) 也有优先级方案。 当中断发生时、VIM 屏蔽相同或较低优先级的中断、直至到达当前为止
    1 完成。
    3、无自占:无特殊处理,中断不能抢占自身。 当 RTI 比较 0 中断被处理时、后续 RTI 比较 0 中断将挂起、直到当前中断
    处理程序完成。

    因此、长时间运行的任务会阻止 10ms 后续的中断、因为没有实现相同优先级中断嵌套或自占先的内置机制。

    有关更多详细信息、请再次参阅以下应用手册:

    e2e.ti.com/.../3817.Nested-Interrupts-on-Hercules-spna219.pdf

    --
    此致、
    Jagadish。