ti工程师您好,我使用的芯片是C6678,现在的应用是主核做通信,从核做数据处理,各从核用EDMA从DDR3中搬移数据到各自的L2中,进行数据处理,每个核所搬移的数据地址没有重叠,单个核分开调试运行时,所有数据都传输正确,但是当把几个核group,然后一起运行时,数据错误,每个核设置使用不同的channel,请问如果要实现多核并行使用EDMA,应该怎么操作?急求您的回复;十分感谢
Shine:
请问这几个核用的是不同的EDMA CC控制器吗?
user4683768:
回复 Shine:
shine您好,我都用的是同一个CC,用的EDMA3CC1
Shine:
回复 user4683768:
试试用不同的EDMA CC控制器是否可以?
user4683768:
回复 Shine:
shine你真是太棒了,当CC不同的时候可以同时传输,但是EDMA3CC只有三个 CC0 CC1 CC2,我现在有四个核需要使用到EDMA,我该怎么办?我试过如果CC选择相同,channel选择不同的时候传输仍然错误,期待你的解答
user4683768:
回复 Shine:
shine我参考了
www.deyisupport.com/…/9092.aspx
e2echina.ti.com/…/104965
这两篇帖子,将
CSL_edma3MapDMAChannelToParamBlock(hModule,channelNum,channelNum);//这里把不同的channel映射到不同的PaRAM
hParamPing = CSL_edma3GetParamHandle(hChannel,channelNum,&status);//这里设置不同的PaRAM
这样修改之后可以传输,但是有时候会卡在
while (!(regionIntr.intr & 0x1));//多核同时运行时有时候会卡在这个地方
参考第二篇帖子中说是要修改intr,和intrh
请问是修改这个吗?需要怎么修改呢?regionIntr.region = CSL_EDMA3_REGION_GLOBAL;regionIntr.intr = 0x1;//多核同时使用的时候这个地方也需要修改吗?regionIntr.intrh = 0x0;