美文网首页嵌入式单片机学习
uboot-step5 关闭MMU与cache

uboot-step5 关闭MMU与cache

作者: 2625K | 来源:发表于2016-08-03 22:57 被阅读121次

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

相关文章

  • uboot-step5 关闭MMU与cache

    uboot-step5 关闭MMU与cache MMU是什么 MMU 的概念参考百度百科的内容:MMU是Memor...

  • 理论复习:MMU技术--Apple的学习笔记

    前言: 为什么要复习MMU和Cache,因为我之前就学习过uboot,但是当初跳过了MMU,另外我平时学习过程中基...

  • uboot step 11 内存一下子变大了 ----MMU的配

    uboot step 11 内存一下子变大了 ----MMU的配置与使用 本文结构如下: MMU 介绍 MMU 相...

  • CPU控制整个计算机的运作,取指令、执行指令CPU-cache存储器-总线-外部存储器CPU MMU 取址:CPU...

  • 大数据硬件选择

    1.关闭BIOS省电模式 2.RAID 卡选择带Raid cache. Linux IO Cache/Buffer...

  • PowerPC E500 MMU详解

    1. 什么是MMU? MMU是Memory Management Unit的缩写,中文名称为内存管理单元。MMU是...

  • Nginx 实现缓存

    配置项缓存功能默认为关闭状态 proxy_cache zone | off; 默认off指明调用的缓存,或关闭缓...

  • Flutter Waiting for another flu

    解决方法:打开 flutter/bin/cache/,删除lockfile。原因:强行关闭AndroidStudi...

  • 页表与MMU

    CPU访问的是什么地址(虚拟地址,物理地址)? 其实CPU根本不关心它访问的是什么地址,它只访问一个地址,然后从数...

  • MMU

    现代操作系统普遍采用虚拟内存管理( Virtual Memory Management) 机制,这需要MMU( M...

网友评论

    本文标题:uboot-step5 关闭MMU与cache

    本文链接:https://www.haomeiwen.com/subject/irhcsttx.html