当前位置: 首页 > news >正文

引导程序uboot

文章目录

  • Bootloader
  • uboot
    • 模式
      • 自启动模式
      • 交互模式
    • 命令
      • 帮助命令
      • 环境变量相关命令
        • 查看环境变量
        • 设置环境变量
        • 保存环境变量
        • 删除环境变量
        • 重置环境变量
    • 常用环境变量
  • mmc
    • 设备信息
    • 读与写
      • 读操作
      • 写操作
      • 清除数据

Bootloader

  • Bootloader是计算机系统中一个重要的程序,负责引导操作系统的启动
  • 主要功能:
      1. 硬件初始化:在操作系统加载之前,Bootloader会执行一些基本的硬件初始化任务,如设置CPU模式、初始化内存和设备等
      1. 加载操作系统内核:Bootloader从存储设备中找到操作系统内核,并将其加载到内存中,以便操作系统可以启动并接管系统控制
      1. 引导管理:对于多重引导系统,Bootloader允许用户选择要启动的操作系统
  • 常见Bootloader:
Bootloader简介主要特点
GRUBGNU GRand Unified Bootloader,主要用于Linux系统多重引导支持;灵活的配置;支持多种文件系统;高级功能支持(LVM、RAID、网络引导)
LILOLinux Loader,早期Linux Bootloader,逐渐被GRUB取代简单可靠; 手动配置; 有限文件系统支持
U-BootUniversal Bootloader,广泛用于嵌入式系统支持多种架构(ARM、MIPS、PowerPC、x86等); 丰富功能(网络引导、TFTP、NFS);灵活配置
SYSLINUX轻量级Bootloader,适用于MS-DOS FAT文件系统轻量简便;适合启动盘;U盘等小型存储设备;变种支持(ISOLINUX、PXELINUX)
Windows Boot Manager微软Windows操作系统的默认Bootloader集成于Windows;图形化界面;多重引导支持

uboot

模式

自启动模式

  • uboot启动后若没有用户介入,倒计时结束后会自动执行自启动环境变量(bootcmd)中设置的命令(一般作加载和启动内核)

交互模式

  • 倒计时结束之前按下任意按键uboot会进入交互模式,交互模式下用户可输入

命令

帮助命令

help查看uboot支持的所有命令
help[command]查看command命令的使用方法

环境变量相关命令

查看环境变量
  • 显示所有当前的环境变量
printenv
  • 显示指定的环境变量
printenvbootcmd
设置环境变量
  • 设置一个环境变量
setenv bootcmd'run loadimage; run loadfdt; run bootm'
保存环境变量
  • 将当前的环境变量保存到非易失性存储器中(如Flash或EEPROM),使其在重启后仍然有效
savven
删除环境变量
  • 将变量设置为空,实际上就是删除该变量
setenv ipaddr
重置环境变量
  • 恢复所有环境变量到默认值
envdefault-a
  • 强制恢复所有环境变量到默认值,并保存
envdefault-f-a

常用环境变量

  • bootdelay:定义U-Boot等待用户中断自动引导的秒数
  • ipaddr:定义U-Boot所在设备的IP地址,用于网络引导或通信
  • serverip:定义TFTP服务器的IP地址,用于网络引导时从服务器下载文件
  • ethaddr:定义设备的MAC地址。每个设备应有唯一的MAC地址
  • netmask:定义网络掩码
  • gatewayip:定义网关IP地址
  • bootcmd:定义引导命令的环境变量。U-Boot在启动时会执行这个命令,通常用于加载并启动操作系统内核
setenv bootcmd'run loadimage; run loadfdt; run bootm'
  • bootargs:传递给操作系统内核的命令行参数。可以用来配置内核的行为
setenv bootargs'console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait'

mmc

  • 在U-Boot下,MMC设备(MultiMediaCard,包括SD卡和eMMC
  • 输入mmc,回车即可得到帮助信息
FSMP1A>mmc mmc - MMC sub system Usage: mmc info - display info of the current MMC device mmcreadaddr blk# cntmmcwriteaddr blk# cntmmc erase blk# cntmmc rescan[mode].....

设备信息

  • 列出所有可用的MMC设备
mmc list
  • 选择MMC设备,后续以此操作
mmc dev0
  • 选择MMC设备和分区。设备号从0开始,分区号从1开始
mmc dev01
  • 显示当前MMC设备的信息
mmc info
  • 显示MMC设备的分区表信息
mmc part

读与写

读操作

  • 从 MMC 设备读取数据到内存中
  • 命令格式:
mmcread<addr><blk#> <cnt>
- `addr`:内存地址(十六进制格式),数据将被读入该地址 - `blk#`:起始块号(通常是 512 字节的块) - `cnt`:要读取的块数量
  • 例如,从块号 0 开始读取 10 个块的数据到内存地址 0x80000000
mmcread0x80000000010

写操作

  • 从内存写数据到 MMC 设备
  • 命令格式:
mmcwrite<addr><blk#> <cnt>
- `addr`:内存地址(十六进制格式),数据将从该地址写入 - `blk#`:起始块号 - `cnt`:要写入的块数量
  • 例如,将内存地址 0x80000000 开始的 10 个块数据写入到块号 0:
mmcwrite0x80000000010

清除数据

mmc erase blk# cnt
mmc dev10# 选中eMMC的boot0分区mmc erase00x20000# 擦除前128KB扇区(根据实际镜像大小调整)mmc dev11# 选中eMMC的boot1分区mmc erase 0x80000 0x10000# 擦除指定范围的TEE镜像扇区
http://www.jsqmd.com/news/422226/

相关文章:

  • @anthropic-ai/claude-code 交互,及常用命令清单
  • 配置ftfp服务和nfs服务
  • 2026年1月文章一览
  • 嵌入式Linux映像文件组成
  • 嵌入式Linux系统移植
  • why Latin letters never play well。
  • 东方博宜OJ 1152:求n个数的最大值和最小值 ← 数组
  • Eisai推出肾癌患者数字化支持平台
  • 学术写作必备工具指南:详解六种基于AI技术的智能论文引用标注方法
  • 8款论文写作工具提供自动目录生成和内容优化功能,大幅提升研究效率
  • 如何获取微信公众号的 Access Token
  • 智能论文写作工具整合目录自动生成与内容优化,助力研究更高效省时。
  • JIPB项目文章|DAP-seq助力解析大豆转录因子在种子含油量中的调控作用
  • 字符串作业
  • WPF引导定位软件-定位纠偏(带角度)
  • 基于springboot计算机科学拔尖学生培养基地系统
  • AI自动化文档生成工具-Mintlify简介
  • 基于springboot计算机岗位推荐系统
  • 德尔泰(Delta)宏观研判:穿透360《头号玩家》的底层收割黑盒,数字资产主权危机与法理确权路径
  • AI自动化文档生成工具-Mintlify实操
  • 基于springboot课外学习生活活动平台
  • Blender-MCP服务源码6-Blender插件运行
  • 2026-02-28 闲话
  • 基于springboot课程管理系统
  • Mac 显示所有的隐藏文件
  • 世纪辩论:马克思 丁元英
  • 从底层解释一下计算机的原理
  • Kumi02_项目运行
  • 某省“十五五”双碳大脑与能耗双控数字化监测指挥平台建设方案深度解析(WORD)
  • ChromaDB06-数据集导入补充