TI工程师:
我在用OMAPL138的starterware的时候,用到cache.c中的CacheEnable函数,具体如下:
CacheEnable(L1PCFG_L1PMODE_32K | L1DCFG_L1DMODE_32K | L2CFG_L2MODE_128K);
即将L1p,L1D,L2中的128K作为cache,实际实验的过程中发现执行这句时L2中的256K都被cache了,后来查看CacheEnable这个原函数,发现CacheEnable函数中L2相应的寄存器赋值出现错误。
大胆的问下,是不是TI提供额CacheEnable这个函数有问题?(按照自己的理解修改能达到L2前128Kcache)
fei chen2:
TI的CacheEnable函数原形如下:
gzc0319:
对呀,我昨天看程序也发现了,正准备发个帖问问,没想到你已经发现了,不过2年多过去了,TI的大神们也没解释下…
gzc0319:
回复 fei chen2:
另外还想问一下,startware代码有问题,你是怎么改的?
直接新建函数,把源码贴过来,更改?
期待回复!
Tony Tang:
回复 gzc0319:
谢谢指出错误。
关于修改,个人建议直接写寄存器即可,因为Cache配置一般只在程序初始化阶段做一次,是否用函数调用影响不大,不如直接写寄存器来的方便快捷。