(1)第一节阶段的功能
1、硬件设备的初始化
2、加载u-boot第二阶段的代码到我们的RAM空间
3、设置好栈
4、跳转到第二阶段的代码入口
(2)第二阶段的功能
1、初始化本阶段所使用的硬件设备
2、检测系统内存映射
3、将内核Flash读取到RAM中
4、为内核设置启动参数
5、调用我们多的内核
为什么我们的bootloader有一段汇编代码?为什么不用C语言的代码呢?
编译地址和运行地址
(1)编译地址
32位处理器,他的每一条指令是4个字节。他是顺序存储的。我们的编译器,回到我们的每一条指令分配一个编译地址,他由编译器自己指定的。
(2)运行地址
其实就是我们程序真正运行的地址,有用户指定
C语言编译地址:我们都希望把我们的编译地址和运行地址放在一起,但是由于我们的汇编代码不需要做我们C语言到汇编的转变,我们可以认为是直接写地址,我们直接写的就是运行地址。这就是为什么我们Bootloader在运行之前会有汇编代码。
u-boot的执行代码:
原文地址:http://blog.csdn.net/u011046042/article/details/41011307