今天遇到一个问题,PS端往DDR3输入数据,PL端读出却是错误的。因为ZYNQ7020是双核,正常的HELLO world模板没有禁用CASHE,使用调试窗口可以发现CPU0/1相同地址的数据是不一样的,此时假如SDK使用CPU0往DDR3中填入数据,其实是存入了CASHE,也只改变了CPU0下的该地址的数据,而PL端读取的却是CPU1的数据。反之同理,PS也不能正确读PL存入的。
解决方法:要么使用hello world模板时用函数手动禁用cashe,或者使用memory test模板,后者在初始化时帮你禁用了。更换完以后读取就正确了