[国嵌笔记][036][关闭MMU和CACHE]

关闭MMU和CACHE

1.Cache是一种容量小,但存取速度非常快的存储器,它保存最近用到的存储器中数据的拷贝。按功能分为ICache(指令Cache)和DCache(数据Cache)

2.虚拟地址就是程序中使用的地址;物理地址就是物理存储单元中实际使用的地址。虚拟地址可以让进程使用更大的空间。MMU的作用就是完成虚拟地址到物理地址的转换

3.在处理器初始化阶段,为防止意想不到的错误,需要暂时关闭MMU和Cache

4.MMU和Cache都是通过CP15协处理器的R1(control register)M(0位)、C(2为)、I(12位)和R7的Invalidate I/D Caches来控制。可以忽略I位,因为下载到nand flash不涉及指令Caches。在ARM核的手册可以找到相关描述

5.第一步使ICahce和DCache失效,第二部关闭ICahce、DCache和MMU。

/*
*名称:disable_cache_mmu
*描述:关闭cache和mmu
*/
disable_cache_mmu:
	mcr p15, 0, r0, c7, c7, 0   //使cache失效
	mrc p15, 0, r0, c1, c0, 0   //载入c1到r0
	bic	r0, r0, #0x5   //清零(-C-M)
	mcr p15, 0, r0, c1, c0, 0   //保存r0到c1
	mov pc, lr
时间: 2024-12-15 04:48:30

[国嵌笔记][036][关闭MMU和CACHE]的相关文章

[国嵌笔记][035][关闭中断]

关闭中断 1.设置cpsr中的I位和F位为1,屏蔽中断和快速中断.在设置svc模式时已经设置了这两位 2.设置中断屏蔽寄存器,屏蔽中断 3.产生的中断会被保存在SRCPND中,通过MASK(屏蔽中断寄存器)决定是否被CPU感知.如果关闭MASK,则产生的中断不会被CPU感知,可以中datasheet中的INTERRUPT CONTROLLER找到相关描述 4.屏蔽中断寄存器INTMSK(0x4A000008),中有32位,每一位对应一个中断,设置相应位为1表示屏蔽该中断.在这里需要设置该中断为全

[国嵌笔记][008-009][远程登录Linux]

[国嵌笔记][008][远程登录Linux] 1.windows与Linux能够相互ping通 2.关闭Linux防火墙 /etc/init.d/iptables stop 3.通过ssh(字符界面)协议远程登录 4.通过VNC(图形界面)协议远程登录 1.安装tigervnc.rpm 2.启动vnc服务:vncserver & [国嵌笔记][009][Windows与Linux文件互享] 1.windows与linux能够相互ping通 2.关闭Linux防火墙 /etc/init.d/ipt

u-boot分析(五)----I/D cache失效|关闭MMU和cache|关闭看门狗

u-boot分析(五) 上篇博文我们按照210的启动流程,对u-boot启动中的设置异常向量表,设置SVC模式进行了分析,今天我们继续按照u-boot的启动流程对以下内容进行分析. 今天我们会用到的文档: Arm9内核手册:http://download.csdn.net/detail/wrjvszq/8358867 Arm11内核手册:http://download.csdn.net/detail/wrjvszq/8358877 Arm a8内核手册:http://download.csdn.

[国嵌笔记][030][U-Boot工作流程分析]

uboot工作流程分析 程序入口 1.打开顶层目录的Makefile,找到目标smdk2440_config的命令中的第三项(smdk2440) 2.进入目录board/samsung/smdk2440/,找到u-boot.lds文件.uboot的链接都是由这个链接器脚本来控制的 3.打开u-boot.lds文件,找到.text(代码段)的第一个文件cup/s3c24xx/start.o,该文件就是uboot的入口代码.链接器脚本中的ENTRY用来表明整个程序的入口,那么标号_start就是整个

26.核心初始化之关闭MMU和cache

26.核心初始化之关闭MMU和cache 下面看看ARM存储体系: 可以看到速度最快的是处理器和内部寄存器,他们的数量很少,价格很昂贵.接着是TCM紧耦合存储器:cache和main memory.速度最慢的是外部存储介质:Flash和SD卡等. CACHE: 上面是两种访存的两种机制,一种是处理器直接访问主存,另一种是处理器-cache-主存.第一种中,处理器的速度相比主存是非常快的,所以两者的速度很不匹配.浪费了处理器的很多资源.第二种是为了改进第一种的缺陷,在处理器和主存之间增加了一种叫C

[国嵌笔记][027][ARM协处理器访问指令]

协处理器作用 协处理器用于执行特定的处理任务,如数学协处理器可以执行控制数字处理,以减轻处理器的负担.ARM处理器最多可以支持16个协处理器,其中CP15是最重要的一个协处理器 CP15的作用 CP15是系统控制协处理器,通过额外的寄存器可以控制cache,MMU,系统时钟等功能 访问协处理器 1.CP15有16组寄存器,通过mcr和mrc指令来访问协处理器里的寄存器,从而达到访问协处理器的目的 2.通过datasheet中的CP15 register map summary可以查找到相关的寄存

关闭mmu和cache

处理器内部寄存器,访问速度最快,但是数量少 TCM:紧耦合存储器(Cache.主存储器) 辅助存储器(Flash.SD等) Cache是一种容量小但是存取速度非常快的存储器 它保存最近用到的存储器中的数据的拷贝,对于程 序员来说,Cache是透明的,他自动决定保存哪些 数据.覆盖哪些数据.按照功能划分: I-cache:指令Cache D-cache:数据Cache 虚拟地址:程序中使用的地址 物理地址:物理存储单元的实际的地址 虚拟地址可以解决地址冲突,可以是进程使用更大的空间 1.使Icac

[国嵌笔记][033-034][设置svc模式]

[设置svc模式] 设置CPU为SVC模式 1.因为初始化系统需要有很高的权限,SVC模式具有该权限,所以首先要使系统工作在SVC(0b10011)模式 2.设置cprs为0xd3(0b11010011)表示设置处理器为svc模式,并且屏蔽irq和frq /* *名称:set_cpu_to_svc *描述:设置CPU为SVC模式 */ set_cpu_to_svc: mrs r0, cpsr bic r0, #0x1f orr r0, #0xd3 //F 1,I 1,M[4:0] 10110 m

[国嵌笔记][013][Mini2440开发板介绍]

系统资源 处理器:三星 S3C2440A ARM9 内存:64M SDRAM Nor Flash:2MB Nand  Flash:256MB LCD:3.5寸 分辨率320*240 启动模式 从nand flash启动 从nor flash启动 操作系统 支持类型:Linux和WinCE 安装位置:nand flash 系统安装: 1.通过JTAG下载引导程序到nor flash中 2.通过usb下载操作系统到内存中 3.通过内存烧写操作系统到nand flash中 串口连接 串口作用:开发板的