TI工程师您好,我参考test_edma的例程,使用C6678,想实现数据从DDR3到内存的搬移,源地址定义如下:
float *srcadd = (float *)0x80000000;
float dstBuff1[64];
目的地址为定义为一个数组的起始地址,使用AB模式训话多次顺序取数据,发现只有第一次取的数据正确,后面都是0,
memset(dstBuff1,0x0,sizeof(dstBuff1));
if (edma_ping_pong_xfer_gbl_region(instNum, channelNum, srcadd, dstBuff1) < 0)
{
printf ("Error: Testing EDMA(%d) Ping-Pong Test (Global) Region for Channel %d FAILED\n", instNum, channelNum);
return;
}
但是当我把目的地址改为一个地址而非数组时,数据搬移正确,
请问这是什么原因,急求您的回复,
Shine:
请问DSTBIDX参数设置了吗?
user4683768:
回复 Shine:
dstBidx的值设定为aCnt的大小
Shine:
回复 user4683768:
"但是当我把目的地址改为一个地址而非数组时",这个地址是什么?是数组的首地址吗?这个地址和数组在同一块memory吗?
user4683768:
回复 Shine:
地址不是数组的首地址,数组在共享内存中,地址是0x10800000
Shine:
回复 user4683768:
把能成功的地址设到和数组同一块memory试试还能不能搬移?
user4683768:
回复 Shine:
shine,请问我应该怎么把一个数组定义到指定的地址?我能想到的是在cmd文件中确定数组地址,除此之外还有没有别的方法