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
