6678与FPGA使用SRIO通信,FPGA写数据到DSP的DDR3内存上,
问题:
FPGA在DSP的DDR3地址为0x80010000上写完一段数据后发送doorbell通知DSP处理,DSP使用memcpy将这一段数据拷贝到DDR3另外的空间地址0x90000000
上,结果发现拷贝的数据就不对, 必须在地址0x80010000上使用CACHE_invL1d()函数才能拷贝正确,这个现象不知道是什么情况,怎么解决?因为不想
用 CACHE_invL1d()函数,也看到别人这样做就不需要使用CACHE_invL1d()函数,是我的配置有问题么?请各位高手指导!
Shine:
请问这段DDR memory使能cache了吗?如果使能了,在读数据前需要CACHE_invL1d来保证cache一致性。
如果不想维护cache一致性的话,可以将这段memory属性定义为noncacheable
zhiyuc:
回复 Shine:
没有对这段DDR memory使能cache呀,如果使能的话怎么使能?我查找一下看看
Shine:
回复 zhiyuc:
请查看MAR寄存器看有没有使能DDR memory?