您好!
我知道、从 CDADDR 寄存 器(TRM SPNU563a 中的第20.3.2.8节)可以读取 DMA 的当前目标地址、前提是更高优先级的 DMA 传输已从优先级队列中中断了数据传输。
是否有方法可以查找当前的目标地址,而不会在通道之间产生这样的冲突?
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.
您好!
我知道、从 CDADDR 寄存 器(TRM SPNU563a 中的第20.3.2.8节)可以读取 DMA 的当前目标地址、前提是更高优先级的 DMA 传输已从优先级队列中中断了数据传输。
是否有方法可以查找当前的目标地址,而不会在通道之间产生这样的冲突?
Tanay、
Hercules 器件架构旨在最大限度地减少这些仲裁条件。 CPU SRAM 互连被设计成只有当 CPU 和 DMA 在同一周期内访问同一个64位地址时、一个仲裁条件才存在。 在极少数情况下、CPU 和 DMA (或其他总线主控)在同一周期内访问相同的64位 SRAM 位置、读取访问将被一个 CPU 时钟周期延迟、以允许写入访问首先完成。
通常情况下、对可用 SRAM 进行分区、这样就不会发生类似的仲裁条件。 DMA 控制器确实提供了几个中断条件、CPU 可以使用这些中断条件来避免运行在您描述的情况下:帧传输完成、最后一帧传输开始、半块传输完成、块传输完成。