嵌入式单片机学习

uboot-step5 关闭MMU与cache

2016-08-03  本文已影响121人  2625K

uboot-step5 关闭MMU与cache

MMU是什么

MMU 的概念参考百度百科的内容:
MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。
其功能主要有:

cache 是什么

cache是处理器内部的一个高速缓存单元,为了应对处理器和外部存储设备的速度不匹配而设立的,其速度比内存的读写速度要快好多,接近处理器的工作速度,一般处理器从内存中读取数据到cache中,到下次再用到数据时,会先去cache中查找,如果cache中存在的话就不会去访问内存了,用以提高系统性能


在系统未初始化完成时,代码还没有转移到内存中,我们还没有用到内存,先将mmu与cache关闭,以免发生不可预料的错误:

使cache中数据无效

这个功能也是通过cp15协处理器来控制的,从arm1176内核手册中可以得到下图:


7.1.png
7.2.png

关闭mmu与cache

这些是通过cp15协处理器的c1寄存器来完成的:


7.3.png
7.4.png
7.6.png

代码实现

/*
 * flush v4 I/D caches
 */
disable_mmu:  
mov r0, #0
mcr p15, 0, r0, c7, c7, 0   /* flush v3/v4 cache */
mcr p15, 0, r0, c8, c7, 0   /* flush v4 TLB */

mrc p15,0,r0,c1,c0,0
bic r0, r0, #0x00000007
mcr p15,0,r0,c1,c0,0
mov pc, lr

此去经年
zhaiyk@sina.cn
August 2, 2016

上一篇 下一篇

猜你喜欢

热点阅读