1.简介
- U-Boot即
Universal Bootloader简称(bootloader的一种),是一个遵循GPL条款的开源源码项目。其从FADSRROM,8xxROM,PPCBOOT逐步发展演化而来。 其源码目录,编译形式与Linux内核极相似,事实上,不少u-boot源码就是相应的Linux内核源码程序的简化。
2.特点
- 开放源码
- 支持多种嵌入式操作系内核,诸如:
Linux,VxWorks等。 - 支持多个处理器(平台)系列,诸如:
PowerPC,ARM,x86,MIPS等。 - 拥有较高的可靠性与稳定性。
- 高度灵活的功能设置,适合
U-Boot调试,OS不同引导需求和发布。 - 拥有丰富的设备驱动源码,诸如:串口,以太网,
FLASH等。 - 较为丰富的开发调试文档和强大的网络技术支持。
3.主要功能
- 支持的功能列表
- 系统引导,支持
NFS挂载,RAM DISK(压缩或非压缩)形式的根文件系统。 - 基本辅助功能,强大的操作系统接口功能,可灵活设置,传递多个关键参数给操作系统;支持目标板环境参数的多种存储方式;支持
CRC32校验。 - 设备驱动,串口,以太网,
FLASH,LCD等。 - 上电自检功能,
SDRAM,FLASH大小自动检测,SDRAM故障检测,CPU型号。 - 特殊功能,
XIP内核引导。
- 系统引导,支持
4.U-Boot源码
5.U-Boot移植步骤
- 1.配置目标板类型(
makefile文件) - 2.修改程序链接地址
- 3.修改中断配置
- 4.修改启动代码(假若是从
NandFlash加载代码启动) - 5.修改内存配置
- 6.添加
NandFlash读函数 - 7.
NandFlash初始化函数 - 8.修改
GPIO配置 - 9.提供
NandFlash相关宏定义 - 10.注册
NandFlash设备 - 11.设置
NandFlash环境
6.启动方式
- 1.启动加载模式
- 亦称"自主"模式,上电后,
bootloader直接操作性同加载到RAM中运行,不需要用户介入。 此种模式也是嵌入式产品通用(正常)模式。
- 亦称"自主"模式,上电后,
- 2.下载加载模式
- 此模式下,设备上电后,
bootloader将通过串口/网络连接等方式,将从远端设备下载文件(内核映像&根文件系统映像),文件先被bootloader保存在设备的RAM中, 然后再被bootloader写入到FLASH等存储设备中,此种模式在系统更新时使用。
- 此模式下,设备上电后,
参考文献:《Linux嵌入式应用程序开发标准教程(第2版)》