uboot 介绍
一个嵌入式系统从软件角度分析,可以分为三个层次:
1、引导加载程序
- 固化在固件中的boot
- Bootloader
2、linux 内核
- linux kernel
3、文件系统
- 系统命令
- 应用程序
Bootloader定义
Bootloader是在操作系统运行之前运行的一段小程序,通过这段小程序可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终的调用操作系统做准备。
为什么需要进行bootloader移植?
每一种不同的cpu体系结构有不同的bootloader,除了会依赖于cpu的体系结构外,还会依赖于具体的嵌入式系统的板级设备的配置。
bootloader大多采用两阶段,启动过程可以分为stage1和stage2:
stage1:
- 硬件设备初始化
- cpu内部的寄存器
- 为加载Bootloader的stage2准备RAM空间
- 拷贝Bootloader的stage2到RAM空间中
- 设置好堆栈
- 为下一步 C 入口点做准备
- 跳转到stage2的 C 入口点
stage2:
- 初始化本阶段需要用到的硬件设备
- 将内核映像和根文件系统从flash上读到RAM中
- 调用内核
Uboot作用
- Uboot是用于多种嵌入式CPU的bootloader程序,Uboot不仅支持嵌入式linux系统的引导,还支持VxWorks,QNX等多种嵌入式操作系统。