下载此文档

U-boot启动流程.doc


文档分类:IT计算机 | 页数:约34页 举报非法文档有奖
1/34
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/34 下载此文档
文档列表 文档介绍
-Boot工作过程
U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下:
(1)第一阶段的功能
Ø硬件设备初始化
Ø加载U-Boot第二阶段代码到RAM空间
Ø设置好栈
Ø跳转到第二阶段代码入口
(2)第二阶段的功能
Ø初始化本阶段使用的硬件设备
Ø检测系统内存映射
Ø将内核从Flash读取到RAM中
Ø为内核设置启动参数
Ø调用内核
-Boot启动第一阶段代码分析
第一阶段对应的文件是cpu/arm920t/。
U-Boot启动第一阶段流程如下:
-Boot启动第一阶段流程
根据cpu/arm920t/u-:
ENTRY(_start)
SECTIONS
{
.=0x00000000;
.=ALIGN(4);
.text:
{
cpu/arm920t/ (.text)
board/samsung/mini2440/(.text)
board/samsung/mini2440/(.text)
*(.text)
}
……
}
第一个链接的是cpu/arm920t/,因此u-,其源代码在cpu/arm920t/。下面我们来分析cpu/arm920t/。

(1)设置异常向量
cpu/arm920t/:
.globl_start
_start: b start_code /*复位 */
ldr pc,_undefined_instruction /*未定义指令向量*/
ldr pc,_software_interrupt /*软件中断向量*/
ldr pc,_prefetch_abort /*预取指令异常向量*/
ldr pc,_data_abort /*数据操作异常向量*/
ldr pc,_not_used /*未使用*/
ldr pc,_irq /*irq中断向量*/
ldr pc,_fiq /*fiq中断向量*/
/*中断向量表入口地址*/
_undefined_instruction: .wordundefined_instruction
_software_interrupt: .wordsoftware_interrupt
_prefetch_abort: .wordprefetch_abort
_data_abort: .worddata_abort
_not_used: .wordnot_used
_irq: .wordirq
_fiq: .wordfiq
.balignl16,0xdeadbeef
以上代码设置了ARM异常向量表,各个异常向量介绍如下:

地址
异常
进入模式
描述
0x00000000
复位
管理模式
复位电平有效时,产生复位异常,程序跳转到复位处理程序处执行
0x00000004
未定义指令
未定义模式
遇到不能处理的指令时,产生未定义指令异常
0x00000008
软件中断
管理模式
执行SWI指令产生,用于用户模式下的程序调用特权操作指令
0x0000000c
预存指令
中止模式
处理器预取指令的地址不存在,或该地址不允许当前指令访问,产生指令预取中止异常
0x00000010
数据操作
中止模式
处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常
0x00000014
未使用
未使用
未使用
0x00000018
IRQ
IRQ
外部中断请求有效,且CPSR中的I位为0时,产生IRQ异常
0x0000001c
FIQ
FIQ
快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常
在cpu/arm920t/。当一个异常产生时,CPU根据异常号在异常向量表中找到对应的异常向量,然后执行异常向量处的跳转指令,CPU就跳转到对应的异常处理程序执行。
其中复位异常向量的指令“b start_code”决定了U-Boot启动后将自动跳转到标号“start_code”处执行。
(2)CP

U-boot启动流程 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数34
  • 收藏数0 收藏
  • 顶次数0
  • 上传人sxlw2016
  • 文件大小345 KB
  • 时间2021-04-22