IMX6ULL学习笔记(5)——获取和编译U-Boot

2022-09-03  本文已影响0人  Leung_ManWah

一、简介

1.1 BootLoader

BootLoader 是系统上电时运行的一段初始化代码,用于引导完整的操作系统,然后将控制器交给操作系统。 这段 BootLoader 程序会先初始化 DDR 等外设,然后将 Linux 内核从 Flash(NAND,NOR FLASH,SD,MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。

另外,某些 BootLoader 可能含有一些高级特性,如校验操作系统镜像,从多个操作系统镜像中选择引导合适的操作系统, 或者添加网络功能,让系统自主从网上寻找合适的镜像并且进行引导等等。


1.2 U-Boot

U-Boot(Universal Boot Loader) 是一个主要用于嵌入式系统的引导加载程序。可以支持多种不同的计算机系统结构,包括 PPC、ARM、AVR32、MIPS、x86、68k、Nios 与 MicroBlaze。这也是一套在 GNU 通用公共许可证之下发布的自由软件。U-Boot 的主要作用是用来启动操作系统内核,它分为两个阶段,即 boot + loader, boot 阶段启动系统,初始化硬件设备,建立内存空间映射图,将系统的软硬件带到一个合适的状态, loader 阶段将操作系统内核文件加载至内存,之后跳转到内核所在地址运行。U-Boot 发展至今,已经可以实现非常多的功能,比如支持液晶屏、网络、USB 等高级功能。

二、安装编译工具和依赖

sudo apt install make git gcc-arm-none-eabi gcc bison flex libssl-dev dpkg-dev lzop libncurses5-dev

三、获取U-Boot

【不推荐,仅列出】

【新手推荐使用以下开发板商提供uboot】

四、U-Boot工程结构

目录/文件 说明
api 通用的API函数相关目录
arch 与芯片架构相关目录
board 板级相关信息目录
cmd uboot命令相关目录
common 通用代码目录
configs boot配置文件目录
disk 磁盘相关内容目录
doc 说明文档
drivers 驱动代码相关目录
dtoverlay
dts 设备树相关目录
env uboot环境相关
examples 示例代码目录
fs 文件系统相关目录
include 头文件相关目录
lib lib库文件目录
Licenses 许可证相关目录
net 网络相关代码目录
post 上电自检相关目录
scripts 相关脚本目录
test 测试代码目录
tools uboot构建工具相关目录
Kconfig 图形配置界面相关文件
Makefile Makefile文件

五、编译野火提供U-Boot


• 由 Leung 写于 2022 年 9 月 3 日

• 参考:3. Uboot的编译
    IMX6ULL - 移植uboot-imx_v2020.04_5.4.70_2.3.0
    【Linux系统移植】U-Boot编译、烧写与使用
    【Linux系统移植】NXP 官方开发板 uboot 编译与烧录

上一篇 下一篇

猜你喜欢

热点阅读