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.
大家好、
客户使用 UDMA 的 CH11和初级侧(SSI0TX)。 在 PeripheralScatterGather 模式下运行。
是否有方法可以验证所有流程都已完成?
他们尝试了以下方法、但不起作用。
-使用 uDMAChannelModeGet 函数进行检查
- HWREG 的确认状态寄存器(UDMA_STAT)
谢谢、此致、
Kuerbis
Kuerbis、您好!
如果他们正确配置了代码、那么他们应该得到一个针对这个的中断:
当 μ μDMA 控制器检测到来自外设的请求时、将使用主控制结构体从列表中拷贝一个数据单元到副控制结构体中、然后执行相应的传输。 传输结束后、只有当外设再次产生 μ μDMA 请求时、才会开始下一个传输。 μ μDMA 控制器仅在外设发出请求时才会继续执行列表中的传输、直到最后一次传输完成。 只有在最后一次传输结束后才会产生一个完成中断。
此外:
当某个外设使能 μ μDMA 后、μ μDMA 控制器会停止某个外设的正常传输中断到达中断控制器(中断仍在该外设的中断寄存器中报告)。 因此、当使用 μ μDMA 传输大量数据时、中断控制器不会随着数据流从外设接收多个中断、而是在传输完成时仅接收一个中断。 未屏蔽的外设错误中断继续发送到中断控制器。
当 μ μDMA 通道产生一个结束中断时、DMA 通道中断状态寄存器(DMACHIS)(见623页)中与外设通道相对应的 CHIS 位置位。 外设中断处理程序代码可以使用该寄存器来确定中断是由 μ μDMA 通道引起的、还是由外设中断寄存器报告的错误事件引起的。 当中断处理程序被激活时、μ μDMA 控制器发出的完成中断请求将自动清零。
他们在这里寻找的是什么、还是有什么不同? 它们是否为 DMA 配置了中断?
你(们)好
感谢您的回复。
客户不想使用中断、也不想使用多项运算。
DMACHIS 寄存器中的 CHIS 位是否仍是进行插值的解决方案?
在本例中、我们需要屏蔽中断。 对吧?
如何操作?
谢谢、此致、
Kuerbis
Kuerbis、您好!
轮询 DMACHIS 在这里没有太大意义、因为你会看到 UDMA 已经完成、但不一定 SSI 已经完成。 我真正能想到的唯一使用 uDMA + SSI +轮询的情况是、当他们想要返回检查 SSI 传输是否完成时、 为此、您需要检查 SSI 状态寄存器并查找 BSY 位以查看它是否仍在发送。
如果他们的想法不同、请说明客户希望如何使用轮询。