TI中文支持网
TI专业的中文技术问题搜集分享网站

对各种DMA的理解困惑

多核DSP有几种DMA,如EDMA3、IDMA、PKTDMA,看了EDMA3、PKTDMA,但还是感觉困惑,主要是这几种DMA的功能有什么不同,分别面向什么应用场合?

还有,如果是核间数据传输,是PKTDMA快还是EDMA3快?各自特点是什么?

 

ZhengTian Wang:

回复 Zhan Xiang:

EDMA3传输数据有源地址和目的地址,如果是多核之间通信,如core0发到core1,那目的地址怎么表示?此外,当数据传输完后,只有core0端有一个完成中断,而core1有没有机制知道数据传输完成?

Andy Yin1:

回复 ZhengTian Wang:

如果要使用EDMA完成一个core LL2到另一个core的LL2memory数据传输,则首先需要想办法让触发EDMA的core获得对端core的LL2地址,可以通过共享memory的方式让对端core获取本core的LL2 buffer地址。EDMA完成中断是不区分core的,对于C6678来说,EDMA中断事件会路由到INTC控制器,这个中断可以通过配置进一步路由到每个core的内部中断矢量表,请参考相应芯片的手册了解中断事件的路由。

aihua LIU:

回复 Andy Yin1:

您好,我最近在学习UPP,利用DMA方式将FPGA传来的数据保存到DSP,我想了解一下一次DMA最多能传输多大的数据,我开了两个2M字节的BUFFER,然后将UPP设置成全收模式,仿真时能看到BUFFER里各自能接受到2M字节的数,我想搞清楚 这些接到的数都存到哪去了,我感觉不能接受到这么多数吧,DSP内存不是才256k字节么,虽然接了DDR,但是能一次接收到这么多数据么?希望大神您能给我指点指点迷津哦

Andy Yin1:

回复 aihua LIU:

EDMA能接收的数据长度为A-cnt*B-cnt*C-cnt,每个cnt的长度是16bit位宽,2M没有问题。你开的buffer应该是放在DDR或者SL2,每个core LL2只有最多1M

na zhang1:

回复 ZhengTian Wang:

你好:

我最近也在做EDMA,需要core间数据的搬移,弄了很久还是弄不出来。

请问你core间数据DMA成功了么?

我可以问你几个问题么?

na zhang1:

回复 ZhengTian Wang:

你好:

我最近也在做EDMA,需要core间数据的搬移,弄了很久还是弄不出来。

请问你core间数据DMA成功了么?

我可以问你几个问题么?

zc wang:

回复 Andy Yin1:

您好,

McASP 想通过 DMA 输出 多路 AXR,如何配置?

例程里只用一路AXR。

赞(0)
未经允许不得转载:TI中文支持网 » 对各种DMA的理解困惑
分享到: 更多 (0)