嵌入式技术
1.概述
从本文开始,将陆续推送“手把手教你移植U-boot”系列文章,目标是由浅入深地讲解U-boot的工作流程、原理、配置方法和移植方法,手把手教你完成U-boot的移植工作,默认硬件开发平台为ARM,操作系统为Linux。
作为开篇,本文主要讲述了U-boot基本介绍、源码获取、源码组成和编译方法。
2.基本介绍
U-Boot是“the Universal Boot Loader”的简称,是一个开源bootloader项目。U-Boot已经成为嵌入式Linux设备领域的事实标准,是一种主流的bootloader。
U-boot的主要功能包括:
(1)初始化硬件;
(2)支持丰富的外设驱动,可用于外设功能测试;
(3)引导操作系统启动;
(4)内置丰富的命令行功能。
U-Boot的通用体现在支持多种硬件架构和多种操作系统的引导。
支持的硬件架构包括ARC、ARM、m68k、microblaze、MIPS、Altera NIOS2、PowerPC、RISC-V、SH、x86、Xtensa等。
支持的操作系统包括Linux、NetBSD、VxWorks、QNX、RTEMS、aRTOS、LynxOS等。
3.源码获取
作为开源软件,U-boot遵循GNU General Public License许可证。U-boot源码的获取主要有3种途径:DENX代码仓库、Git代码仓库和DENX服务器。
(1)DENX代码仓库下载地址
下载界面如下:
(2)Git代码仓库下载地址:
https://github.com/u-boot/u-boot
下载界面如下:
Git代码仓库下载命令如下:
git 克隆 https://github.com/u-boot/u-boot.git
git 克隆 https://source.denx.de/u-boot/u-boot.git
(3)DENX的服务器代码下载地址
4.源码组成
U-boot源码目录如下:
U-boot源码的主要子目录说明如下:
(1)api:不依赖于硬件、供外部应用使用的API;
(2)arch:硬件架构相关代码;
(3)board:板级相关代码;
(4)boot:启动支持相关代码;
(5)cmd:命令行功能代码;
(6)common:不依赖于硬件的功能代码;
(7)configs:板级默认配置文件;
(8)disk:disk分区处理代码;
(9)doc:参考文档;
(10)drivers:设备驱动;
(11)dts:构建内部U-Boot fdt的配置文件;
(12)env:环境变量支持;
(13)examples:独立运行的应用例程;
(14)fs:文件系统代码;
(15)include:头文件;
(16)lib:适用于所有硬件架构的库程序;
(17)Licenses:许可证文件;
(18)net:网络功能代码;
(19)post:加电自检代码;
(20)scripts:编译脚本和Makefile;
(21)test:测试相关代码;
(22)tools:工具代码。
5.编译方法
(1)首先进入根目录,使目标板的默认配置生效,命令形式如下:
制作xx_defconfig
其中,xx_defconfig位于./configs目录内。
目标板的默认配置生效后,编译配置写入了根目录下的.config文件。
(2)执行make命令,即可启动编译,在根目录下生成u-boot.bin可执行二进制文件。
全部0条评论
快来发表一下你的评论吧 !