大家好:
本人使用的是6747芯片,CCS3.3工具,做了如下工作:
1、使用EDMA将EMIFA上接口的数据传输到SDRAM上(0xC0000000~0xC0001000);
2、传输完成后产生中断,在中断中处理接受到的数据。
3、在memory中读取数据,发现数据未更新,而将memory下面的 “L2 Cache" 等勾掉后,此时数据显示的是传输后的数据,应该是数据已经传到memory中,但是Cache中未更新;
4、欲使用memory中已经更新的数据,定义"volatile unsigned int * " 型指针指向上述memory(0xC0000000~0xC0001000)进行读取操作:
unsigned int u4Data = (volatile unsigned int*)(0xC0000000);
碰到问题如下:
上述的u4Data读到的数据是EDMA传输更新前的数据,应该是Cache中的数据,而不是memory的值,即与"memory"中勾上“L2Cache”等是显示的数据一致。
不知我理解上有何误区,望乞指导。