news 2026/5/28 12:36:10

嵌入式神器U-Boot:从启动到内核全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
嵌入式神器U-Boot:从启动到内核全解析

U-Boot(Universal Boot Loader)是一个开源的、功能强大的引导加载程序(bootloader),主要用于嵌入式系统,支持多种处理器架构(如 ARM、x86、PowerPC、MIPS、RISC-V 等)和硬件平台。它在系统上电后运行,负责初始化硬件、加载操作系统内核(如 Linux)并将其移交控制权。


U-Boot 的主要功能包括:

  1. 硬件初始化

    • 初始化 CPU、内存(DDR)、时钟、串口等基本外设。
    • 支持设备树(Device Tree)传递给内核。
  2. 引导操作系统

    • 从多种存储介质加载内核:eMMC、SD 卡、NAND/NOR Flash、USB、网络(TFTP/NFS)等。
    • 支持压缩内核镜像(如 zImage、uImage)和设备树 blob(dtb)。
  3. 命令行交互(CLI)

    • 提供丰富的命令(如printenvsetenvbootmloadbmmctftp等)用于调试和配置。
    • 可通过串口终端与用户交互。
  4. 环境变量管理

    • 存储在非易失性存储器中(如 Flash 或 eMMC),可持久化保存启动参数(如bootargsbootcmd)。
  5. 脚本支持

    • 支持自动执行启动脚本(bootcmd)或自定义脚本。
  6. 网络功能

    • 支持 TFTP、DHCP、Ping 等,便于远程下载和调试。
  7. 更新与维护

    • 可通过命令更新自身(sf writemmc write等)或更新内核/文件系统。

典型 U-Boot 启动流程:

  1. 上电 → 执行 SoC 内置 ROM 代码(如 i.MX6 的 Boot ROM)。
  2. 加载 U-Boot 到 RAM(可能分 SPL + 主 U-Boot 两阶段)。
  3. U-Boot 初始化硬件,设置堆栈,进入主循环。
  4. 倒计时等待用户输入(可中断自动启动)。
  5. 执行bootcmd环境变量中的命令,加载并启动内核。

常用 U-Boot 命令示例:

# 查看环境变量 printenv # 设置启动参数 setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait' # 从 SD 卡加载内核 fatload mmc 0:1 0x80008000 zImage fatload mmc 0:1 0x82000000 my_board.dtb # 启动内核 bootz 0x80008000 - 0x82000000 # 保存环境变量到 Flash saveenv # 通过 TFTP 下载文件 tftp 0x80008000 zImage

开发与编译 U-Boot:

U-Boot 源码托管在 https://source.denx.de/u-boot/u-boot。

编译示例(以 ARM 板为例):

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- <defconfig> make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

生成文件通常包括:

  • u-boot.bin:原始二进制镜像
  • u-boot.img:带头信息的镜像(用于某些 SoC)
  • spl/u-boot-spl.bin:二级程序加载器(若启用 SPL)

如果你有具体问题(如移植 U-Boot、调试启动失败、修改环境变量、支持新板卡等),欢迎提供详细信息,我可以给出针对性建议!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/24 2:31:26

灯,照亮美业前行的路

曾几何时&#xff0c;你坐在门店里&#xff0c;心里装着清晰的运营蓝图&#xff0c;却总觉得它在现实中逐渐模糊。每周例会上&#xff0c;目标喊得响亮&#xff0c;却在日常运营中被悄悄遗忘&#xff1b;任务层层下达&#xff0c;却在执行环节打了折扣&#xff1b;激励制度白纸…

作者头像 李华
网站建设 2026/5/15 11:27:04

StructBERT中文情感分析镜像发布|开箱即用,支持WebUI与API调用

StructBERT中文情感分析镜像发布&#xff5c;开箱即用&#xff0c;支持WebUI与API调用 1. 章节简介 在自然语言处理&#xff08;NLP&#xff09;的实际应用中&#xff0c;中文情感分析是企业级服务中高频需求的核心能力之一。无论是用户评论挖掘、客服对话情绪监控&#xff0…

作者头像 李华
网站建设 2026/5/19 7:51:54

跨平台AI分类方案:Windows/Mac/Linux全支持,云端运行

跨平台AI分类方案&#xff1a;Windows/Mac/Linux全支持&#xff0c;云端运行 引言&#xff1a;为什么需要跨平台AI分类方案&#xff1f; 作为一名自由职业者&#xff0c;你可能经常需要在不同设备间切换工作——咖啡馆用MacBook写方案&#xff0c;回家用Windows台式机处理图片…

作者头像 李华
网站建设 2026/5/25 21:40:45

分类模型压缩技巧:云端GPU训练+移动端部署,两全其美

分类模型压缩技巧&#xff1a;云端GPU训练移动端部署&#xff0c;两全其美 1. 为什么需要模型压缩&#xff1f; 想象你要把一台台式电脑的功能塞进智能手机里——这就是模型压缩要解决的问题。分类模型在云端用GPU训练时&#xff0c;可以拥有复杂的结构和海量参数&#xff0c…

作者头像 李华
网站建设 2026/5/1 10:01:25

StructBERT中文情感分析镜像发布|WebUI+API双模式开箱即用

StructBERT中文情感分析镜像发布&#xff5c;WebUIAPI双模式开箱即用 1. 背景与需求&#xff1a;为什么需要轻量级中文情感分析方案&#xff1f; 在当前自然语言处理&#xff08;NLP&#xff09;广泛应用的背景下&#xff0c;中文情感分析已成为智能客服、舆情监控、用户评论…

作者头像 李华