关闭mmu和cache
处理器内部寄存器,访问速度最快,但是数量少
TCM:紧耦合存储器(Cache、主存储器)
辅助存储器(Flash、SD等)
Cache是一种容量小但是存取速度非常快的存储器
它保存最近用到的存储器中的数据的拷贝,对于程
序员来说,Cache是透明的,他自动决定保存哪些
数据、覆盖哪些数据。按照功能划分:
I-cache:指令Cache
D-cache:数据Cache
虚拟地址:程序中使用的地址
物理地址:物理存储单元的实际的地址
虚拟地址可以解决地址冲突,可以是进程使用更大的空间
1、使Icache+Dcache无效
2、关闭I/D-Cache
.text
.global _start
_start:
b reset
ldr pc, _undefined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort
ldr pc, _data_abort
ldr pc, _not_used
ldr pc, _irq
ldr pc, _fiq _undefined_instruction: .word undefined_instruction
_software_interrupt:.word software_interrupt
_prefetch_abort:.word prefetch_abort
_data_abort:.word data_abort
_not_used:.word not_used
_irq:.word irq
_fiq:.word fiq undefined_instruction:
nop software_interrupt:
nop prefetch_abort:
nop data_abort:
nop not_used:
nop irq:
nop fiq:
nop reset:
bl set_svc
bl disable_watchdog
bl diasble_interrupt
bl disable_mmu
mov pc, lr set_svc:
mrs r0, cpsr
bic r0, r0, #0x1f
orr r0, r0, #0xd3
msr cpsr, r0
mov pc, lr #define pwTCON 0x53000000
disable_watchdog:
ldr r0, =pwTCON
mov r1, #0x0
str r1, [r0]
mov pc, lr disable_interrupt
mvn r1, #0x0
ldr r0, =0x4a000008
str r1,[r0]
mov pc, lr disable_mmu
mcr p15,,r0,c7,c7,
mrc p15,,r0,c1,c0,
bic r0,r0,#0x00000007
mcr p15,,r0,c1,c0,
mov pc, lr
关闭mmu和cache的更多相关文章
- [国嵌笔记][036][关闭MMU和CACHE]
关闭MMU和CACHE 1.Cache是一种容量小,但存取速度非常快的存储器,它保存最近用到的存储器中数据的拷贝.按功能分为ICache(指令Cache)和DCache(数据Cache) 2.虚拟地址 ...
- u-boot分析(五)----I/D cache失效|关闭MMU和cache|关闭看门狗
u-boot分析(五) 上篇博文我们按照210的启动流程,对u-boot启动中的设置异常向量表,设置SVC模式进行了分析,今天我们继续按照u-boot的启动流程对以下内容进行分析. 今天我们会用到的文 ...
- MMU与cache
这一快理解的非常浅: MMU 虚拟存储器对内存进行了逻辑上的扩充.比如一个32位的CPU系统,逻辑上的寻址可以达到4GB,但是如果直接对物理地址进行寻址,就要受到主存大小的限制. 在这种条件下,虚拟地 ...
- 虚拟地址和物理地址(MMU)以及cache
最近非常忙,博客很乱也没有更新,这里随便记录点东西,周末有空整理下. cache是一个与CPU很近的高速存储器, 作用:提高内存的访问读写速度 cache属性是指对这部分虚拟地址的读写是使用cache ...
- GNU 关闭 MMU 和 Icache 和 Dcache
1. cp15 寄存器 disable Icache 和 Dcache . disable_MMU: MCR p15,0,r0,c7,c7,0 MRC p15,0,r0,c1,c0,0 bic r ...
- 关闭缓存和mmu(转)
当设置完时钟分频以后,uboot就会执行cpu_init_crit汇编函数,这个函数的主要作用就是关闭缓存和mmu,然后调用lowlevel_init函数进行系统总线的初始化. 为什么启动的时候,需要 ...
- (6)uboot具体解释——关闭缓存和mmu
uboot具体解释--关闭缓存和mmu 当设置完时钟分频以后,uboot就会运行cpu_init_crit汇编函数,这个函数的主要作用就是关闭缓存和mmu.然后调用lowlevel_init函数进行系 ...
- Part5核心初始化_lesson4---关闭mmu
1.ARM存储体系 2.cache 3.虚拟地址 那么谁来完成把虚拟地址转换成物理地址呢? 4.这个工作就由MMU来转换!! 5.关闭MMU和cache 他们都是通过cp15协处理器来控制的!应该在A ...
- uboot(二): Uboot-arm-start.s分析
声明:该贴是通过参考其他人的帖子整理出来,从中我加深了对uboot的理解,我知道对其他人一定也是有很大的帮助,不敢私藏,如果里面的注释有什么错误请给我回复,我再加以修改.有些部分可能还没解释清楚,如果 ...
随机推荐
- java 传值
好文章:https://zwmf.iteye.com/blog/1738574 public class Test { public int i,j; public void test_m(Test ...
- 如何保存 Activity 的状态?
Activity 的状态通常情况下系统会自动保存的,只有当我们需要保存额外的数据时才需要使用到这样的功能.一般来说, 调用 onPause()和 onStop()方法后的 activity 实例仍然存 ...
- c++ 函数后面有个 const
非静态成员函数后面加const,类似如下函数: class testClass{ public: void testClass() const{ /*...*/} private: /*...*/ } ...
- CSS3 长度单位
http://www.w3chtml.com/css3/units/length/vh.html https://www.html.cn/book/css/values/length/vh.htm . ...
- Linux内存:物理内存管理概述
内存中的物理内存管理 概述 一般来说,linux内核一般将处理器的虚拟地址空间划分为2部分.底部比较大的部分用于用户进程,顶部则专用于内核. 在IA-32系统上,地址空间在用户进程和内核之间划分的典型 ...
- linux 磁盘命令
用到共享软件为:samba 配置文件为 /etc/samba/smb.conf sudo fdisk -l 查看磁盘 sudo df -lh 查看磁盘挂载情况 sudo mount /dev/sdb ...
- 交换机安全学习笔记 第五章 DHCP缺陷攻击
关于DHCP攻击有如下几类攻击方式: 一.耗尽DHCP地址池 通过随机生成源MAC地址,然后伪造DHCPDISCOVER数据包.耗尽DHCP服务器地址池. 免费的攻击工具: Yersi ...
- 第七周课程总结&实验报告
课程总结 主要学习了抽象类与接口的应用 1.抽象类的成员可以具有访问级别 接口的成员全部public级别 2.抽象类可以包含字段 接口不可以 3.抽象类可以继承接口 接口不能继承抽象类 4.抽象类的成 ...
- 【一个蒟蒻的挣扎】单源最短路(Dijkstra)
赛前没啥时间好好解释了,还有三天2019CSP,大家加油啊!!! ヾ(◍°∇°◍)ノ゙ 背掉它就好啦!!! 我觉得我这一版打得还行就放上来了 #include<cstdio> #inclu ...
- 【洛谷p1051】谁拿了最多奖学金
谁拿了最多奖学金[题目链接] 这道题早就想做它啦. 咱也不知道为啥,咱就是看这道题特别顺眼呢qwq: MY SOLUTION: 其实这道题很简单,开一个结构体记录各项信息,然后根据条件计算出这个人获得 ...