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.

如果DDR cache没有被使能的话,EDMA3 数据搬移成功,使能后数据搬移不成功



Hello,

目前DM8148 DSP开发进行算法优化。

我将DDR3的数据搬移到L2内存段内。

一开始用memcpy()函数,数据搬移没有问题,算法运算结果正确。

然后用自己编写EDMA3_copy()函数搬移数据,同时也没有使DDR 该段外存cache使能,方法如下:

  for(i=0;i<256;i++)

  {
     MAR->MAREG[i] = 0;
  }

 数据搬移没有任何问题。

但是当DDR 该段外存cache使能后,重新运行该段代码,运算结果就不正确。

 

  DDR 该段外存cache使能方法如下:

  for(i=0;i<256;i++)

  {
     MAR->MAREG[i] = 1;
  }

我尝试修改使该传输数据的原地址和目标地址都是0x80对齐后,DDR 该段外存cache使能,重新运行代码,运算结果正常。

根据EDMA3文档,EDMA3传送中没有对源地址,目标地址对齐有专门要求。

能否解释这种现象原因?

谢先,

BRS,

Meng