用的是c6670。现在外部其他主机向dsp的ddr3写数据,比如说写到0x84000000停止。
现在程序中有语句
while(1){ //数据传输中
if (*(int *) 0x84000000==某常数)
printf("yes\n"); //其实想在这个地方测速
}
现在有两个疑问
1.事先不将ddr3 cache化,在0x8400000周围的数据将不是我传的数据,意味在此处数据丢了。
2.事先将ddr3 cache化,在0x8400000处的数据确实是我传的数据,但是不会进入到while(1)中的if中去,也就没有执行打印。
希望解惑,不胜感激!
Andy Yin1:
先用论坛STK例程中的memory test程序对DDR进行自测,确保DDR初始化成功。
打开cache的话,在读之前,先要对进行cache invalid保证读到内存中更新的数据。