TI论坛
直播中

宋艳艳

7年用户 201经验值
私信 关注
[问答]

使用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怎么操作,谢谢。

回帖(3)

田硕

2018-12-28 11:18:10
进入中断就可以进入supervisro模式了,在该模式下可以修改。
 
举报

宋艳艳

2018-12-28 11:35:06

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

田硕

2018-12-28 11:45:29

设置cacheable寄存器的这段MMR,系统是不进行cache的(由MAR1控制,用户不可改,PC=0),因而读出来的内容肯定是对的。可能是下面的原因:
是不是要先执行一下asm("MFENCE"),因为改了cacheable设置之后,需要延时读才行。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分