Part5核心初始化_lesson4---关闭mmu】的更多相关文章

1.ARM存储体系 2.cache 3.虚拟地址 那么谁来完成把虚拟地址转换成物理地址呢? 4.这个工作就由MMU来转换!! 5.关闭MMU和cache 他们都是通过cp15协处理器来控制的!应该在ARM核的手册里面搜索CP15 1.首先要使I/Dcache里面的数据无效 2.关闭I/D cache以及mmu 代码:…
1.关闭cpsr寄存器里面的I(中断)和F(快速中断)位: 2.设置中断屏蔽寄存器. 针对2440: 这是中断处理过程,当有中断源(没有子中断源)来的时候,它会把这个中断记录在SRCPND里面:它还要经过MASK屏蔽寄存器,如果我们对对应位屏蔽了,那么它就无法进入到IRQ这里来处理.对于有子中断源的同理. 其代码: 针对6410: 打开S3C6410X文件,进入到Vectored Interrupt Controller这个章节, 6410和210采用的是向量中断的方式, 在6410要去屏蔽一个…
1.看门狗---作用 2.看门狗工作方式 3.原理图 时钟源来自于PCLK经过分频器,经过选择器,输出到作为看门狗定时器,WTDAT为一个预载值,当它计数为零的时候,还没有给WTDAT赋值,那么它会发出一个重启信号RESET. 找到S3C6410X文件,找到里面的watch dog章节, 关闭代码如下: start.s代码:…
我们的Linux系统以及bootloader是工作在SVC模式!!怎么把处理器设置为SVC模式呢? CPSR寄存器或者SPSR寄存器最低5位可以设置模式,把该5位设置为0b10011, start.s文件…
1.1异常 异常向量: 异常向量表: 代码的编写 start.S文件 gboot.lds链接器脚本文件 makefile工程文件:…
1.gboot.lds OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS {    . = 0x30008000; //起始地址        . = ALIGN(4);//4字节对齐    .text : //代码段    {    start.o (.text)//以.o开始执行    *(.text)    }    . = ALIGN(4);    .data : //数据段    {    *(.data)    }        . = ALIGN(4); …
关闭MMU和CACHE 1.Cache是一种容量小,但存取速度非常快的存储器,它保存最近用到的存储器中数据的拷贝.按功能分为ICache(指令Cache)和DCache(数据Cache) 2.虚拟地址就是程序中使用的地址:物理地址就是物理存储单元中实际使用的地址.虚拟地址可以让进程使用更大的空间.MMU的作用就是完成虚拟地址到物理地址的转换 3.在处理器初始化阶段,为防止意想不到的错误,需要暂时关闭MMU和Cache 4.MMU和Cache都是通过CP15协处理器的R1(control regi…
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.…
13.1 NOR FLASH 搬运 把程序从 nor flash 上搬运到 SDRAM 中 程序存储在 nor flash 上,运行时将程序搬运到 SDRAM 中运行 nor flash 启动:nor flash 的地址从 0x0000 0000 开始,CPU 可以直接在 nor flash 上运行程序 在 nor flash 上运行程序很慢 SDRAM:地址为 0x3000 0000,程序烧录在 nor flash 上,运行时,将 nor flash 上的代码搬运至 SDRAM 中运行 nor…
(借鉴:该方法本人亲自操作过,解决了问题!) 解决连接ORACLE错误一例:ORA-01033: ORACLE 正在初始化或关闭 客户发现连接数据库有问题,错误有: ORA-01033: ORACLE 正在初始化或关闭 ORA-00600: 内部错误代码 首先修改环境变量,保证cmd下访问到正确的oracle监听,如: E:\oracle\product\10.2.0\client_1\bin;E:\oracle\product\10.2.0\client_2\bin;E:\oracle\pro…