news 2026/6/10 0:48:45

嵌入式神器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/6/10 13:24:25

StructBERT中文情感分析镜像发布|CPU友好+开箱即用

StructBERT中文情感分析镜像发布&#xff5c;CPU友好开箱即用 1. 背景与需求&#xff1a;为什么需要轻量化的中文情感分析服务&#xff1f; 在自然语言处理&#xff08;NLP&#xff09;的实际应用中&#xff0c;情感分析是企业级场景中最常见的任务之一。无论是用户评论、客服…

作者头像 李华
网站建设 2026/6/10 12:36:25

多语言混合翻译难题怎么破?HY-MT1.5大模型给出答案

多语言混合翻译难题怎么破&#xff1f;HY-MT1.5大模型给出答案 在跨语言交流日益频繁的今天&#xff0c;用户对翻译质量的要求已从“能看懂”升级为“精准、自然、上下文一致”。然而&#xff0c;现实中的文本往往充满挑战&#xff1a;中英夹杂的技术文档、带格式标记的网页内…

作者头像 李华
网站建设 2026/6/10 14:10:09

AutoGLM-Phone-9B核心优势揭秘|附本地部署、API调用与性能优化实战

AutoGLM-Phone-9B核心优势揭秘&#xff5c;附本地部署、API调用与性能优化实战 1. AutoGLM-Phone-9B 核心优势与技术定位 1.1 移动端多模态大模型的工程突破 随着智能终端对AI能力需求的持续增长&#xff0c;传统大语言模型因高算力消耗和内存占用难以在移动设备上高效运行。…

作者头像 李华
网站建设 2026/6/10 12:43:40

医疗废物智能监测:技术如何守护我们的健康与环境

医疗废物管理是医疗卫生机构中至关重要的一环&#xff0c;不仅关系到医护人员的职业安全&#xff0c;更直接影响公共卫生和环境保护。随着物联网、大数据、智能传感等技术的发展&#xff0c;医疗废物的收集、转运、暂存和处置过程正逐步实现数字化、智能化、可追溯化。今天我们…

作者头像 李华
网站建设 2026/6/10 12:32:20

万能分类器深度体验:云端GPU比本地快10倍

万能分类器深度体验&#xff1a;云端GPU比本地快10倍 引言 作为一名技术博主&#xff0c;我经常需要测试各种最新的AI分类模型。记得上周在家用GTX 1080显卡跑一个中等规模的图像分类任务&#xff0c;整整花了一个小时才完成。这种等待不仅浪费时间&#xff0c;还严重拖慢了内…

作者头像 李华