嵌入式学习笔记之三 (uboot我来看)

1 BootLoder
BootLoder 是什么,从名字上来看,BootLoder 由 boot 和 loader 两部分组成,这也是它的主要的两个功能。boot 主要是指初始化一些系统的硬件并建立内存映射图,为内核的运行创建一个合适的环境,loader 就是指将内核从存储介质(启动介质)中加载到内存 RAM 中,然后跳转到内核所在内存地址运行内核。总之,BootLoder 是内核启动之前为内核搭建软硬件环境的一段程序。BootLoder 是不同平台或项目的启动加载程序的统称,不单指某一个程序,比如,常见的 BootLoder 有,Redboot,Armboot,U-Boot等。
2 uboot
上节中讲到 U-Boot 是 BootLoder 的一种,U-Boot 全称为 Universal Boot Loader,即通用的 BootLoder,所谓通用就是指它适用于多种嵌入式平台,包括不同 CPU 架构的嵌入式平台,如 PowerPC、ARM、MIPS。本手册将 U-Boot 简写为 uboot,所以本手册中的 uboot 即为 U-Boot。uboot 是遵循 GPL 条款的开放源码项目,是在 PPCBoot 以及 ARMBoot 的基础上逐步发展和演化而来的,最新版本目前已经更新到u-boot-2020.10 版本,我们可以从 uboot 官方网站:http://www.denx.de/wiki/U-Boot/SourceCode 下载。
不过我们目前使用的 uboot 源码不是在这个网站下载的,而是由 NXP 公司提供的。NXP 公司在推广 i.MX6ULL 芯片时,会开发出一套 i.MX6ULL EVK 评估板给客户进行评估,同时也有适配于该评估板一套软件系统,也就是说 NXP 的工程师完成了大量的平台移植工作,飞凌的 OKMX6ULL-S2 开发板与 EVK 评估板又有些许差异,我们只需要在 NXP 提供的 uboot 源码(uboot-imx-2016.03 版本)基础之上做一下差异性修改即可。此软件系统可以通过 yocto 工程构建获得,其中包含了 uboot 源码,内核源码,文件系统,以及交叉编译工具,关于系统的构建,在后面章节会有讲解。
4.2 uboot 源码的目录结构及文件说明(这里我使用的是OKMX6uLL-S2的系统)
我们将 OKMX6ULL-S2 用户资料\Linux\linux 源码\ OKMX6ULL-S2-uboot-imx-2016.03.tar.bz2 uboot 源码压缩包复制到 Ubutun 的/home/forlinx/work/下,解压缩:

forlinx@ubuntu:~/work$ tar -xvf OKMX6ULL-S2-uboot-imx-2016.03.tar.bz2

解压完成之后进入 OKMX6ULL-S2-uboot-imx-2016.03 目录,使用 ls 命令查看 uboot 源码目录使用 ls命令查看 uboot 源码目录:

 目录说明:
api:存放 uboot 提供的功能函数接口。
Arch:系统架构相关的代码,这里每一个文件夹名都代表着一种处理器类型,我们关心的是 arm,在arch/arm/cpu/armv7 里面存在着重要的与 uboot 启动相关的.S 文件。
Board:存放着根据不同开发板定制的板级代码
common: 一些与具体硬件无关的通用代码
cmd:以 uboot 命令行处理代码为主
disk :磁盘分区相关代码
doc:里面存放了很多 uboot 相关文档,这些文档可以帮助我们理解和使用 uboot

drivers : 驱动代码
examples:示例程序
fs:文件系统,支持嵌入式开发板常见的文件系统
include:头文件,以通用的头文件为主
lib:通用库文件
net:网络相关代码
post: 加电自检程序
tools:辅助程序,用于编译和检查 uboot 目标文件

文件说明:
build.sh:编译脚本,直接执行此脚本即可完成工程编译
Makefile:一个致力于工程编译的文件,将来整个 uboot 编译的时候就是用这个 Makefile 来编译管理的
Kconfig:用于生成内核配置界面的的文件
Kbuild:跟 Makefile 文件配合编译 uboot,它对 Makefile 进行了功能上的扩充,使其在编译 uboot 文
件时更加高效简介
config.mk:为一个 Makefile 文件,被主 Makefile 调用。
MAINTAINERS:维护者,就是当前在参与维护 uboot 源码的社区工作者。
README:源码说明文件

猜你喜欢

转载自blog.csdn.net/mainmaster/article/details/121714963
今日推荐