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

C6678多核同时使用EDMA

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;

赞(0)
未经允许不得转载:TI中文支持网 » C6678多核同时使用EDMA
分享到: 更多 (0)