嵌入式Linux之Uboot笔记(3)--启动第一阶段代码分析

**1.**uboot启动的第一阶段是用汇编来进行编写的,在u-boot.lds中找到start.S的入口。
**2.**代码开始的地方首先包含两个头文件。#include<config.h>包含了uboot移植时的配置文件,而#include<version.h>包含了include下的另一个文件,内容是有关uboot的版本号信息。
**3.**构建异常向量表,如下所示。嵌入式Linux之Uboot笔记(3)--启动第一阶段代码分析
**4.**代码跳到reset部分往下执行。设置CPU的的工作模式为SVC模式,关看门狗,设置时钟等操作。
**5.**进行代码重定位,将代码重定位到SDRAM中,如下所示。
嵌入式Linux之Uboot笔记(3)--启动第一阶段代码分析
**6.**第一次设置栈SP,清楚BSS段,如下所示。
嵌入式Linux之Uboot笔记(3)--启动第一阶段代码分析
**7.**跳到启动的第二阶段入口执行。
嵌入式Linux之Uboot笔记(3)--启动第一阶段代码分析
_start_armboot是uboot启动第二阶段的入口。