bootloader的主要作用是:
初始化硬件(如:串口,内存),然后将内核映像从Flash中读到RAM中,
然后跳转到内核的入口点去运行,也就是启动 操作系统。
即相当于windows下的BIOS,只不过嵌入式系统中没有像BIOS那样的固件程序。
bootloader启动过程:
分为单阶段(single-stage)和 多阶段(multi-stage)两种
阶段比较:
多阶段的bootloader具有更复杂的功能,更好的可移植性。
因此,从固态存储设备上启动的bootloader大多采用两阶段。
单阶段:
…………
多阶段:
通常指两阶段,启动过程可分为 stage1、stage2
stage1:完成初始化硬件,为stage2准备内存空间,并将stage2复制到内存中,
设置堆栈,然后跳转到stage2。
stage2:初始化本阶段要使用到的硬件设备;
将内核映像和根文件系统映像从flash上读到RAM中;
调用内核。