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.

[参考译文] TMS320F280045:错误的 ISR 跳转地址

Guru**** 2513185 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1167030/tms320f280045-incorrect-isr-jump-address

器件型号:TMS320F280045

几周以来、我们注意到单个较新的 DSP 出现了非常奇怪的错误行为。 虽然我们没有对软件 或硬件进行任何更改、但这些错误仅在最近几周发生。

到目前为止,我们注意到的是,当  进入缺省 ISR 时,据称的坏 DSP 显示不同的 intVect 和 thisVect 值(请见示例代码)。 我们认为 DSP 跳转到错误的 ISR。 这 种奇怪的行为可能会导致什么?e2e.ti.com/.../DEFAULT_5F00_ISR.c 

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

    尊敬的 Christian:

    感谢您的提问。 代码中是否碰巧有任何中断嵌套(看起来它可能来自第7行上的 PIECTRL 读取)? 如 器件勘误表中所述、在嵌套时必须小心以避免寄生中断

    还有以下注意事项:

    对于这个、基本上必须仔细考虑执行 PIEACK 或 PIEIER 设置/清除时的操作顺序。

    有关嵌套预防措施的详细信息也在本指南中:

    https://software-dl.ti.com/C2000/docs/c28x_interrupt_nesting/html/index.html

    根据您的描述、假设嵌套在实际代码中被启用(这里没有 EINT、所以我不确定它是否启用)、那么有可能在第8行和第10行之间触发另一个中断(在两次读取之间)、并且这可能是您正在读取的另一个 ISR。

    这可能是一个间歇性问题、因此您只能在一台设备上偶尔看到它。 但是、如果在该器件上频繁发生、则可能不是嵌套问题。

    此致、

    Vince