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:如何处理来自同一个源的多个同时到达的中断?

Guru**** 2478765 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/991470/tms570lc4357-how-to-deal-with-multiple-interrupts-from-the-same-source-arriving-at-the-same-time

器件型号:TMS570LC4357

我们遇到 DMA BTC 中断的问题。 我们有两个运行在不同 MIBSPI 上的外设、每个外设都使用 DMA 与外设之间传输数据。 两个外设传输中的一个从外部源异步触发、另一个由我们的软件触发、都使用 DMA BTC 中断来处理传输后的数据。 问题是、由于异步特性、我们在极少数情况下会同时触发两个 BTC 中断、 由于它来自相同的中断源、中断不会被请求、因此我们最终会丢失两个中断中的一个(它似乎总是具有较低 DMA 优先级的中断)。

是否有任何方法来处理这个问题 并防止 丢失中断? 我们已经尝试读取各种 DMA 寄存器来查看是否可以检查是否发生了多个中断、但至今未成功。 我们将在未来添加具有异步 DMA 的附加外设、因此我们更喜欢采用同样适用于两个以上冲突中断的通用解决方案。