天嵌 ARM开发社区

 找回密码
 注册
查看: 1830|回复: 1

MMU启动代码中关于DCache的一个问题

[复制链接]
莫之夭阏者 发表于 2013-9-5 14:28:47 | 显示全部楼层 |阅读模式
在裸机程序中的MMU启动代码中,有这么一句话:

//If write-back is used,the DCache should be cleared.
for(i=0;i<64;i++)
  for(j=0;j<8;j++)
    MMU_CleanInvalidateDCacheIndex((i<<26)|(j<<5));
MMU_InvalidateICache();

其中第一个循环64,我理解是对应于ARM920T 64路组相联的Cache结构
第二个循环8,我理解是对应于ARM920T 16KB的Cache,32B 512条的Cache Line,每组64条,共8组

MMU_CleanInvalidateDCacheIndex(index)中将j,也就是0~7这个组号作为位[7:5],是可以理解的,这也是Cache结构中Virtual Index的值,但是将i,也就是0~63作为位[31:26],这个我就不太能够理解了

还请各位朋友帮忙解释一下啊,先谢谢啦~
 楼主| 莫之夭阏者 发表于 2013-9-5 16:02:00 | 显示全部楼层
o(╯□╰)o 没有人回复吗?哪位能帮忙解释下啊!...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-27 01:44 , Processed in 1.062493 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表