码迷,mamicode.com
首页 > 其他好文 > 详细

核心初始化基本介绍

时间:2016-08-12 18:11:28      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

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/5765723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!