TI中文支持网
TI专业的中文技术问题搜集分享网站

使用CACHE_disableCaching函数禁止cache没起作用

请教:平台是6678,ccs5.4,使用CSL库函数 CACHE_disableCaching 禁止cache 0x8000000地址

CACHE_disableCaching(128);

调用            CACHE_getMemRegionInfo (129, &pcx, &pfx); 读取pcx的值 仍然是1,所以没起作用。

怀疑是当前模式是user mode,而修改MAR寄存器需要supervisor mode ,不知道是不是这个原因。

请问怎么查看当前的模式,如果要进入supervisor mode怎么操作,谢谢。

 

han yang1:

回复 chenpjh:

进中断会切换到supervisor模式。我在仿真器调试下通过CACHE_disableCaching(176)禁止cache,而    CACHE_getMemRegionInfo (176, &pcx, &pfx); 读出pcx的值仍是1,而实际上这一段地址似乎cache被禁止了,因为我的算法处理时间一下增加了好多。这个情况不明白是怎么回事。

chenpjh:

回复 han yang1:

设置cacheable寄存器的这段MMR,系统是不进行cache的(由MAR1控制,用户不可改,PC=0),因而读出来的内容肯定是对的。可能是下面的原因:

是不是要先执行一下asm("MFENCE"),因为改了cacheable设置之后,需要延时读才行。

赞(0)
未经允许不得转载:TI中文支持网 » 使用CACHE_disableCaching函数禁止cache没起作用
分享到: 更多 (0)