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.
工具与软件:
尊敬的 Champs:
现在客户正在使用 DMA 中断、他们配置了两个 DMA 中断、它们都是 BTC 类型(块传输完成)。 共有16个~通道(从0 0~5 15开始)、但根据 TRM 的表16-47中的描述、BTCA 仅使用0~15位来表示 μ DMA 通道、而不是使用16位来逐一表示。
因此、如果通道1和通道4都配置为 BTC 中断、那么当通道1和通道4同时触发 DMA 中断时、BTCA 是否会读取错误的通道编号并导致错误的中断? 或者这是否会导致中断丢失?
客户的意思是、虽然会读取 BTCA、但如果同时中断、通道1 BTCA 将设置为0b010、通道4 BTCA 将设置为0b101、因此如果同时中断、BTCA 是否会设置为111、即、它将成为通道6的中断?
现在、客户会发现、当只配置了一个 DMA 中断时、程序运行良好。 当配置两个 DMA 中断时、其中一个中断有时会无法触发。 他们想知道为什么会出现这个问题。
谢谢!
此致、
Julia
尊敬的 Julia:
根据我对该器件的了解、
BTCFLG 寄存器中的以下位表示实际块传输已完成通道状态:
如上所述、每个位将指示一个通道、如您所见、每个通道有16位和一位。 如果多个通道完成了块传输、则会设置相应的通道位。
BTCAOFFSET 将在所有完成块传输的通道中指示一个通道、这意味着 BTCAOFFSET 寄存器显示完成块传输的第一个通道编号。 一旦我们对相应的通道进行了处理、就会生成下一个完成的挂起通道中断。
[报价 userid="486218" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1484649/tms570ls2124-question-about-dma-interrupt。"]因此、如果通道1和通道4都配置为 BTC 中断、当通道1和通道4同时触发 DMA 中断时、BTCA 是否会读取错误的通道号并导致错误的中断? 或者这是否会导致中断丢失?[/QUOT]所以、应该不会有任何错误的中断、否则会出现中断缺失的情况。
——
谢谢、此致、
Jagadish。