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

6678EDMA数据传输错误

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文件中确定数组地址,除此之外还有没有别的方法

赞(0)
未经允许不得转载:TI中文支持网 » 6678EDMA数据传输错误
分享到: 更多 (0)