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.

[参考译文] TMS320F28069:如果较高优先级中断的 ISR 执行时间较长、为什么低优先级中断会被挤占?

Guru**** 2589265 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/930942/tms320f28069-why-does-the-low-priority-interrupts-get-pre-empted-if-the-isr-execution-time-of-the-higher-priority-interrupt-is-higher

器件型号:TMS320F28069

以下是各种中断时序的详细信息:

Tint0:50us

2. EPWM6: 250US

Tint1:100us

4. Tint2:200us

我所面临的问题是,如果计时器0中断的 ISR 的执行时间激发,则其余中断将被挤占,并且永远不会发生。 我已经检查了定时器0中断的 ISR 执行时间是否小于50us、尽管我无法找到确切的执行时间。

此致、

Mayuri

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

    梅尤里,你对占先的解释不清楚。

    默认情况下、C28x CPU 中没有嵌套。 每当 CPU 有机会处理中断时、它都会寻找挂起的最高优先级中断并将其接收。

    一旦执行、在该中断完成之前、任何新的中断将挂起、并且一旦当前中断完成、CPU 将查看最高优先级的中断(在执行此 ISR 时可能发生的所有中断中)并开始执行相同的中断。

    但是、如果有2个高优先级中断连续发生(这意味着 CPU 永远不会执行任何非中断/后台代码)、那么如果有一个第三低优先级中断永远不会得到机会。

    您需要相应地构建软件、通常情况下、ISR 需要非常清晰。

    希望这对您有所帮助。

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

    您好、Mayuri、  

    您能否分享与"中断"部分相关的代码的屏幕截图。