This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Andy Lee,
从你的代码看源和目的buffer的数据初始化是有规律的。请问你在MemoryBrowser中看到的源数据是否和预期一致,目的端是否一致?不一致是否有规律?方便的话给个截图上来。
谢谢!
for (loopIndex = 0; loopIndex < 256; loopIndex++)
{
srcBuff1[loopIndex] = loopIndex;
srcBuff2[loopIndex] = loopIndex;
dstBuff1[loopIndex] = 0;
dstBuff2[loopIndex] = 0;//刚开始ping和pong的目标缓冲区没数据
}
Yu Liu
您好!前4张图中显示的依次为MemoryBrowser中观察到的srcBuff1,dstBuff1,srcBuff2,dstBuff2中的数据,目的缓冲区和源缓冲区的数据并不一致,请问是什么原因呢?另外,按初始化的要求源缓冲区的值从srcBuff[0]到srcBuff[255]应该依次为0到255,但是最后一张图中显示Expressions里面观察到的srcBuff1中srcBuff[0]到srcBuff[99]中的数值并不是依次从0到99,请问是什么原因呢?谢谢!
Yu Liu
我的程序最后运行的结果是srcBuff1和dstBuff1的数据一致,srcBuff2和dstBuff2的数据也一致,也就是说数据传输成功了!
现在我将源缓冲区改成了只有一个然后进行测试,在进行pingpong传输的之后发现源缓冲区的数据全部传到dstBuff1之后又全部往dstBuff2里面传输了一遍,按理说pingpong传输是先从源缓冲区往ping缓冲区传输数据,传输完成以后再将源缓冲去剩下的数据往Pong缓冲区传输,但为什么最后结果是pong缓冲区的数据并不是往ping缓冲区传输后剩下的数据,而是和ping缓冲区的数据完全一样呢?谢谢!工程文件已经上传
Yu Liu
我现在要做的是利用EDMA将数据从EMIF传输到DDR3里面,采用pingpong缓冲机制,我的想法是在DDR3的地址处设置ping缓冲区好pong缓冲区,然后采用link交替往两个缓冲区传递数据,直到EMIF中的数据全部传输到DDR3里面,请问我这个想法是否可行?谢谢!
另外,如果像我在上一个问题中提到的那样,最后由于Link的作用数据传到Ping缓冲区以后又重新往pong缓冲区传输一遍,这样岂不是多传送了一次?能否采用某种方法,在将ping缓冲区填满以后再将EMIF中剩下的数据往pong缓冲区传输呢?谢谢!