TI论坛
直播中

宋艳艳

7年用户 201经验值
私信 关注

请问如何禁止L1D 缓存 MSMCSRAM的数据?

本帖最后由 一只耳朵怪 于 2018-6-19 14:24 编辑

大家好,我用的是6678开发板,看数据手册上有这么一段
To support MSMC, the L2 memory controller forces the MAR.PC bit corresponding to the MSMC memory to 1 (always MAR12.PC  through MAR15.PC). This makes the MSMC memory always cacheable within L1D when accessed by its primary address range. Secondary ranges may exist due to  aliases configured with XMC’s MPAX unit—these ranges are governed by their corresponding MAR.PC bits.
意思是说如果我访问MSMC的地址空间0x0C000000-0xC03FFFFF ,一共4MB时,数据会被cache到L1D,因为项目需要多核都会访问这个空间的数据,我想把这段空间CACHE禁止,怎么做。这段空间对应的MAR是只读的,试着改过了,没效果,CACHE还是开着。

回帖(2)

杨娟

2018-6-19 01:05:59
C66 corepac手册XMC章节7.3.2.2中有提到,可以使用MPAX将共享memory 0x0 0C00 0000开始的物理地址进行重映射,之后可以使用MAR对重映射的逻辑地址配置cache属性,将相应的变量放到重映射的逻辑地址空间即对应放到了共享memory空间。如果觉得麻烦,可以将变量放到DDR,通过MAR配置这段DDR空间为noncache即可。
                                                                          

举报

吴江

2018-6-19 01:22:22
只能重映射一下了,这个直接来的话   肯定不行的
举报

更多回帖

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