TI工程师您好,我使用的是C6678,利用EDMA将数据从DDR3搬移到L2,四个核进行此操作,均使用不同的channel,参考的是edma_test.c的程序,使用global_region, 同时使用时出现数据搬移错误的问题,当使用不同的CC时,可以同时进行数据搬移,但是CC只有三个,我有四个核同时使用,故必须有两个核使用同一个CC,参考了如下帖子:
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;