U-Boot(Universal Boot Loader),即通用Bootloader,是德国DENX小组开发的用于多种嵌入式CPU的bootloader程序。是遵循GPL条款的开放源代码项目。
Bootloader不属于操作系统内核,这一部分代码不具有可移植性,在移植操作系统时,这部分代码必须加以改写:Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。
U-boot启动的最终目的:启动内核
两种情况:1.从XIP设备(Flash)XIP代表"Execute In Place",它是一种技术,允许嵌入式系统直接在非易失性存储器(如闪存)中执行程序,而无需将程序复制到随机存取存储器(RAM)中。
2.非XIP设备:将U-Boot指令赋值进内存里面。
- 初始化内存
- CPU从Flash(闪存芯片)中读内核或者通过EMMC控制器,将内核拷贝到RAM(内存)。
- 初始化硬件(比如时钟等)
一、U-boot 源码目录结构
u-boot-2010.06及以后版本,基本目录结构如下表
Name |
Description |
api |
此目录下存放u-boot向外提供的接口函数 |
arch |