嵌入式系统中的boot Loader 的实现完全依赖于CPU 的体系结构,因此大多数Boot
Loader 都分为第一阶段和第二阶段两大部分,依赖于CPU 体系结构的代码,比如设备初始
化代码等,通常都放在阶段1 中,而且通常都用汇编语言来实现,以达到短小精悍的目的。
而阶段2 则通常用C 语言来实现,这样可以实现一些复杂的功能,而且代码会具有更好的
Loader 都分为第一阶段和第二阶段两大部分,依赖于CPU 体系结构的代码,比如设备初始
化代码等,通常都放在阶段1 中,而且通常都用汇编语言来实现,以达到短小精悍的目的。
而阶段2 则通常用C 语言来实现,这样可以实现一些复杂的功能,而且代码会具有更好的
可读性和可移植性。
第一阶段包括:
(1)硬件设备的初始化
①初始化GPIO 功能
②设置CPU的速度和时钟频率
③存储控制单元初始化
(2)拷贝Bootloader的程序到RAM空间中
(3)设置好堆栈
(4)跳转到阶段2的C人口地址
第二阶段包括:
(1)初始化本阶段要使用到的硬件设备;
①初始化至少一个串口
②初始化计时器(定时器)
③初始化网络传输等
(2)系统内存映射(memory map);
(3)将kernel 映像和根文件系统映像从Flash 读到RAM 空间中;
即加载内核映象和根文件系统映象
(4)为内核设置启动参数;
(5)调用内核。
详见我的360网盘文件《实验三 Bootloader实验》pdf