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:中断异常延迟

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1533150/tms320f28069-abnormal-latency-of-interrupt

器件型号:TMS320F28069

工具/软件:

尊敬的专家:

当客户使用 F28069 实现 20kHz 开关频率中断 (50us) 时、主 ISR 任务通常需要~33us 来运行。

我们现在遇到的问题是:

我们添加了用于保护的密钥/密码、在这种情况下、如果在主 ISR 中添加 1 个子函数(如 if-else、但 if-else 不会跳转到运行中)或 1 个计算函数(1 个乘法代码)、时间将远远超过 50us(比以前长 20us)并导致性能异常。

调试信息:

  • 如果删除密钥/密码并且未使用密钥/密码保护、则此问题将消失。
  • 如果缩短 ISR 代码、该问题将消失。
  • 如果使用仿真器 (xds100V2)、则不会出现问题。

现在、我们仍然需要添加密钥/密码、并在 ISR 中添加乘法计算、但无法到达函数。 与密码有关是非常奇怪的。 我们需要了解根本原因和解决方案、请帮助内部检查是否有任何方向。

谢谢!

Joyce

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

    您好 Joyce、

    他们是否能够共享已添加并导致执行时间延长的密钥/密码行? 我还能查看 为这些行生成的反汇编的屏幕截图(“View -> Disassembly“)、以查看编译器生成的代码是否看起来低效/有缺陷。 其他一些问题:

    1. 它们是否开启了编译器优化?
    2. 它们是否实现了中断嵌套?
    3. 它们是否在 ISR 中使用任何非内联函数调用? 通常不建议这样做。

    此致、

    Delaney