TI论坛
直播中

李高胜

8年用户 204经验值
私信 关注
[问答]

请教关于C6678的EDMA3数据搬移的问题

大家好:
         现在我在使用C6678的EVM板,想使用EDMA3对映射在PCIe总线(0x60000000)的数据进行搬移,搬移到DDR(0x90000000)中;同时使用EDMA3对DDR(0x91000000)中的数据搬移到PCIe总线地址。关键是我想让EDMA3同时对数据进行搬移,那么需要使用两个EDMA通道吧?而且两个通道产生的中断事件应该放在两个不同的FIFO队列中?
        另外我看到C6678有三个通道控制器(起始地址分别是:0x02700000,0x02720000,0x02740000),如果使用两通道EDMA的话是要对其中的两个通道控制器都进行配置吗?DMAQNUM0是指队列0?那要将两通道的EDMA中断事件放到两个不同的FIFO中,DMAQNUM0和DMAQNUM1都要使用?还有一个传输完成结束标志位IPR,如果IPR为1的话,是指两通道的数据均搬移完成还是其中一个搬移完成?
        希望得到大家的帮助,谢谢。

回帖(2)

李玉珍

2018-7-24 09:12:57
三个通道控制器CC(起始地址分别是:0x02700000,0x02720000,0x02740000)是三个独立的EDMA engine,每个CC底下又有多个(2/4个)传输控制器TC。TC才是连接在总线上的独立的传输引擎。所以对于你的需求,想要同时传输的话,使用一个CC底下的两个TC就可以完成了。所以你只要设置一个CC下面的寄存器就可以了。
每个EDMA的CC,都有64个独立的通道,这里的通道是接收触发EDMA传输的事件的通道,每个通道都可以选择它所对应的数据传输使用哪一个TC来完成。这个CC channel向TC的映射关系就是通过你看到的DMAQNUM寄存器来设置的。在EDMA user guide的4.2中你可以看到DMAQNUM一共有8个寄存器(DMAQNUM0-DMAQNUM7),每个寄存器控制8个CC channel向TC的映射关系。你需要根据你使用的两个channel ID找到各自对应的DMAQNUM寄存器,再各自设置自己使用的的TC。
IPR, IPRH两个寄存器中一共有64个比特,每个bit保存对应channel上的中断标志。
举报

李高胜

2018-7-24 09:29:13
引用: cmh9 发表于 2018-7-24 09:12
三个通道控制器CC(起始地址分别是:0x02700000,0x02720000,0x02740000)是三个独立的EDMA engine,每个CC底下又有多个(2/4个)传输控制器TC。TC才是连接在总线上的独立的传输引擎。所以对于你的需求,想要同时传输的话,使用一个CC底下的两个TC就可以完成了。所以你只要设置一个CC下面的寄存器就可以了。
每个EDMA的CC, ...

好的,非常感谢您的回答。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分