核心初始化基本介绍

1.核心初始化主要工作

2.设置中断向量表

 arm处理器支持7种类型的异常,如下表:

异常向量:当一种异常发生的时候,ARM处理器会跳转到对应该异常的固定地址去执行异常处理程序,而这个固定的地址,就称之为异常向量。

异常向量表:由七个异常向量及其处理函数跳转关系组成的表即为异常向量表。

3.设置svc模式

 通过设置程序状态寄存器Current Program Status Register (CPSR) ,来设置模式。

 

步骤:先利用mrs将cpsr的值保持到通用寄存器中,清零相应5位(bic),置1(orr);再利用msr将通用寄存器的值存回cpsr寄存器中。

4.关闭看门狗

 Watchdog在硬件上实现了计时功能,启动计时后,用户(软件)必须在计时结束前重新开始计时,俗称“喂狗”,如果到超时的时候还没有重新开始计时,那么它就认为系统是死机了,就自动重启系统。
通过设置WATCHDOG TIMER CONTROL (WTCON) REGISTER寄存器,来关闭看门狗。

5.关闭中断

步骤:

1.CPSR寄存器的I,F位均设置为1(在设置svc模式可以设置)

2.设置中断屏蔽寄存器

 6.关闭mmu与cach

6.1 arm存储体系

 

6.2 cache

Cache是一种容量小但存取速度非常快的存储器,它保存最近用到的存储器中数据的拷贝。对于程序员来说,Cache是透明的。它自动决定保存哪些数据、覆盖哪些数据。按照功能划分:
I-Cache: 指令Cache,用于存放指令

D-Cache: 数据Cache,用于存放数据

6.3 虚拟地址

虚拟地址:程序中使用的地址。
物理地址:物理存储单元实际的地址

使用虚拟地址的作用:

可以让进程使用更大的空间(若物理地址为64MB,只能为64MB,访问较小,但当引入虚拟地址后,虚拟地址的空间一般为4G);
可以解决地址冲突(多个应用程序访问同一个物理地址)。

6.4 设置方法

1. 设置Cache operations让cache无效 

2. 根据arm11核的手册,设置Control Register 关闭I/D cache,mmu

 

 

代码:http://www.cnblogs.com/boyiliushui/p/5766171.html

posted on 2016-08-12 17:12  LeoSanford  阅读(422)  评论(0编辑  收藏  举报

levels of contents