根据一些教程,我们将在 bootlaoder 开始时禁用 MMU 和 I/D-Caches。如果我理解正确,它旨在直接在程序中使用物理地址,所以如果我错了,请纠正我。谢谢!
其次,我们这样做是为了禁用 MMU 和缓存:
mrc P15, 0, R0, C1, C0, 0
bic R0, R0, #0x00002300 @ 清除位 13, 9:8
bic R0, R0, #0x00000087 @ 清除位 7, 2:0
orr R0, R0, #0x00000002 @ 设置位 2 (A) 对齐
orr R0, R0, #0x00001000 @ 设置位 12 (I) I-Cache
mcr P15, 0, R0, C1, C0, 0
D-Cache、MMU 和数据地址对齐故障检查已被清除位 2:0 禁用,但为什么我们在下面的仪器中立即启用位 2?确保这种操作是有效的?
最后一个问题是为什么 D-cache 被禁用但 I-caches 能够?加快仪器进程?