1、我想利用EDMA实现一个矩阵的转置,使用的是AB模式,CCNT=8根据用户手册我设置的是ITCCH_EN,TCINT_EN,TCC设置的是channelnum(也就是chain他自己),根据前面的两个EN,我猜想是当传输完一帧后,ITCCH_EN根据TCC chain另外一个通道,由于这个通道是自己,所以继续传输;当CCNT帧完成后,TCINT_EN触发传输完成中断,也就是TCC那个位。我不知道这么理解对不对,也就是说在这个例子里面,要chain的通道和传输完成中断的数字是一样的???
2、另外一个问题是这样的,core0做的算法是做fft,做完之后传输给第二个核;原来我打算是core0在本地L2中开辟一个buff存储结果,之后将这个结果用dma传输到共享存储区buff1,之后core0使用MessageQ通知core1使用dma再从buff1搬移到core1的本地L2的buff2中,我感觉这样有点多此一举,我可不可以直接使用EDMA将数据直接从core0的L2中搬移到core1的L2中???
希望大家来回答,谢谢
Andy Yin1:
1 是的,你的理解是对的;
2 可以,EDMA中的地址填成每个核buffer LL2的全局地址即可,因为每个core LL2的地址有局部及全局地址之分,局部基地址为0x00800000开始,全局基地址为0x1n800000(n为coreID,取值从0开始)
user4712072:
回复 Andy Yin1:
好的,谢谢您啊!
再问您一个问题,就是csl的edma在bios模式下容易出错吗???有人告诉我csl可能跟bios有冲突!!!edma3lld的例子在哪可以找到??
Andy Yin1:
回复 user4712072:
EDMA csl的函数可以在bios下用,不会有什么冲突。在edma lld安装目录下有例程,如edma3_lld_02_12_01_22\examples