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.

6678 SRIO SWRITE 向FPGA发送数据时CACHE一致性

ti专家你好,在6678 SRIO SWRITE 向FPGA发送数据时遇到了一共CACHE一致性的问题

目前SRIO 1X 3.125Gbps已经和FPGA联通,通过SWRITE方式双方胡写数据都没有问题,

问题现象:

但是在6678把L2 CACHE、 DDR3 CACHE打开后,SWRITE方式往FPGA发送数据,发现FPGA从SRIO上收到的数据和6678DDR3里的数据(0x80000000开始)对不上,第一个SRIO包的数据都不对,检查后定位在CCS 软件的内存查看器发现发给FPGA的数据是6678 L2 CACHE未同步的数据。颜色是浅绿色的.

6678 在初始化时的CACHE配置如下:

CACHE_setL1PSize(CACHE_L1_32KCACHE); //将L1P的32K空间全部用作cache
CACHE_setL1DSize(CACHE_L1_32KCACHE); //将L1D的32K空间全部用作cache
CACHE_setL2Size(CACHE_64KCACHE);

DDR3的CACHE配置如下:

CACHE_enableCaching了从0x80000000开始到0x90000000的空间

软件维护:

我在DDR3数据写入后使用了writeback

CACHE_wbL1d((void*)(0x80000000),0x3000000,CACHE_WAIT);//DDR3内写入数据后要回写下
CACHE_wbL2((void*)(0x80000000),0x3000000,CACHE_WAIT);

利用SRIO往FPGA端发送之前使用了invalid

CACHE_invL1d((void *)(0x80000000), 0x3000000, CACHE_WAIT); //读之前先要CACHE_InvL1d-
CACHE_invL2((void *)(0x80000000), 0x3000000, CACHE_WAIT); 

感觉已经进行了CACHE一致性的维护,怎么还是有数据不一致的情况发生呢,请专家支支招,多谢。

x 出现错误。请重试或与管理员联系。