DMA642 L2 CACHE 设置
CACHE_clean(CACHE_L2ALL, 0, 0);
CACHE_setL2Mode(CACHE_128KCACHE);
CACHE_enableCaching(CACHE_EMIFA_CE00);
//CACHE_enableCaching(CACHE_EMIFA_CE01);
PC机通过PCI读取DSP内存的0x81000000及以后的地址,将CE01的使能去掉,PC机访问DSP内存数据正常了。但对这个空间所有的访问都去掉了L2模式,会比较慢。索性在DSPBIOS内存分配选项中不再分配CE01这个空间,保证程序部分.text不会分配到这个区域,只有读写数据时才会用到这个内存块,也就不影响其他代码的运行了。实验证明,程序运行速度基本没有影响,NDK运行正常,PC读取内存内容页正常了。
下面再试试将L2都打开,每次写完L2之后就刷新一下,保证数据都写到了该内存地址。
CACHE_clean
CACHE_flush
NDK两路的问题还没有解决。有知道的帮助一下呀。。
|