根据某些教程,在引导程序开始时我们会禁用MMU和I/D-Caches。如果我理解正确的话,它的目的是在程序中直接使用物理地址,如果我有误请纠正我。谢谢!
其次,我们这样做是为了禁用MMU和Caches:
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)Align orr R0,R0,#0x00001000 @设置位12(I)I-Cache mcr P15,0,R0,C1,C0,0
通过清除位2:0禁用了D-Cache、MMU和数据地址对齐故障检查,但为什么我们在以下工具中立即启用位2呢?是为了确保此操作有效吗?
最后一个问题是为什么禁用了D-cache但可以使用I-caches?是为了加快工具处理速度吗?
其次,我们这样做是为了禁用MMU和Caches:
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)Align orr R0,R0,#0x00001000 @设置位12(I)I-Cache mcr P15,0,R0,C1,C0,0
通过清除位2:0禁用了D-Cache、MMU和数据地址对齐故障检查,但为什么我们在以下工具中立即启用位2呢?是为了确保此操作有效吗?
最后一个问题是为什么禁用了D-cache但可以使用I-caches?是为了加快工具处理速度吗?