嵌入式的启动:
- 加载引导程序,固件+bootloader
- linux内核
- 文件系统:根文件系统和Flash内存设备上的文件系统:包括shell
- 用户应用程序
Bootloader的两个阶段
阶段一:
- 硬件初始化(非必须)
- 为加载bootloader第二阶段代码准备RAM空间
- 复制第二阶段代码到RAM中
- 设置好栈
- 跳转到第二阶段代码C的入口点
阶段二;
- 初始化硬件设备
- 检测内存映射 memory map
- 将内核映象和根文件系统映象从Flash上读到RAM中
- 为内核设置启动参数
- 调用内核
bootloader位于nor flash(16M), Linux内核镜像位于 nand flash. 系统加电后 uboot将Linux内核读到系统内存中,然后跳转到内存中Linux入口,将控制权交给linux