U-Boot 是嵌入式系统中常用的引导加载程序(bootloader),它提供了一套命令行接口,用于调试、加载操作系统镜像以及进行硬件测试等操作。
1、变量操作命令
这些命令用于管理 U-Boot 的环境变量。
命令 | 功能说明 |
---|---|
setenv name value | 设置一个环境变量 name 的值为 value 。 |
setenv name | 删除指定的环境变量 name 。 |
saveenv | 将当前的环境变量保存到非易失性存储器(如Flash)中。 |
printenv / print | 显示所有或指定的环境变量。 |
示例:
setenv bootdelay 3
saveenv
2、内存操作命令
这些命令用于读写和操作内存内容。
命令 | 功能说明 |
---|---|
md [.b/.w/.l] address [count] | 以字节/字/长字格式显示内存内容。 |
mm [.b/.w/.l] address | 交互式修改内存内容。 |
mw [.b/.w/.l] address value [count] | 写入指定值到内存地址。 |
cp [.b/.w/.l] source target count | 拷贝内存数据。 |
cmp [.b/.w/.l] addr1 addr2 count | 比较两个内存区域的内容。 |
nm [.b/.w/.l] address | 监视内存地址并允许修改。 |
示例:
md.l 0x80000000 10 # 查看从地址 0x80000000 开始的 10 个 long 数据
mw.b 0x81000000 ff 1000 # 写入 0xff 到地址 0x81000000 开始的 1000 字节
3、网络操作命令
用于配置网络参数和传输文件。
命令 | 功能说明 |
---|---|
setenv ipaddr x.x.x.x | 设置开发板 IP 地址。 |
setenv ethaddr xx:xx:xx:xx:xx:xx | 设置 MAC 地址。 |
setenv gatewayip x.x.x.x | 设置网关地址。 |
setenv netmask x.x.x.x | 设置子网掩码。 |
setenv serverip x.x.x.x | 设置 TFTP/NFS 服务器 IP。 |
dhcp | 自动获取 IP 地址(通过 DHCP)。 |
tftp address filename | 从 TFTP 服务器下载文件到指定内存地址。 |
nfs address server:path | 加载 NFS 文件系统中的内核文件。 |
ping x.x.x.x | 测试网络连接是否通畅。 |
示例:
setenv serverip 192.168.1.100
tftp 0x8007fc00 zImage
4、eMMC 和 SD 卡操作命令
用于操作 MMC 存储设备(如 eMMC 或 SD 卡)。
命令 | 功能说明 |
---|---|
mmc info | 显示当前 MMC 设备信息。 |
mmc rescan | 扫描并重新识别 MMC 设备。 |
mmc dev [0/1] | 切换 MMC 设备编号(0 或 1)。 |
mmc part | 显示 MMC 分区信息。 |
mmc read address block count | 从 MMC 读取数据到内存。 |
mmc write address block count | 将内存数据写入 MMC。 |
示例:
mmc dev 0
mmc read 0x8007fc00 0x800 0x200 # 从 block 0x800 读取 0x200 块到内存
5、EXT 文件系统操作命令
支持 EXT2/EXT3/EXT4 文件系统的访问。
命令 | 功能说明 |
---|---|
ext4ls [dev:mmcblk0p1] [dir] | 列出目录下的文件。 |
ext4load address file | 加载文件到内存。 |
ext4write address file size | 将内存中的数据写入文件。 |
示例:
ext4ls mmc 0:1 /boot/
ext4load mmc 0:1 0x8007fc00 /boot/zImage
6、启动相关命令
用于加载并启动 Linux 内核。
命令 | 功能说明 |
---|---|
bootm [address] | 启动一个 uImage 格式的 Linux 内核。 |
bootz [address] | 启动一个 zImage 格式的 Linux 内核。 |
boot / bootd | 使用默认的启动命令启动系统(通常由 bootcmd 定义)。 |
示例:
bootm 0x8007fc00
7、其他常用命令
命令 | 功能说明 |
---|---|
ums | 将设备挂载为 USB 大容量存储设备。 |
reset | 重启系统。 |
go address | 在指定地址执行代码(跳转到某段程序入口)。 |
run name | 运行自定义的命令序列(由 setenv name cmd1; cmd2 定义)。 |
mtest | 内存测试命令。 |
mii info | 显示 PHY 状态信息。 |
mdio | 操作 MDIO 总线上的寄存器。 |
示例:
run bootcmd
注意
- 所有命令都可以通过输入
help
或?
来查看详细用法。 - 可以使用
setenv bootcmd 'your command'
设置自动启动命令。 - 使用
saveenv
保存设置后,下次启动时依然有效。