U-Boot(Universal Bootloader)是一款广泛应用于嵌入式系统的开源引导加载程序,支持多种处理器架构,如ARM、MIPS、x86等。它负责初始化硬件、加载操作系统内核并传递控制权给内核。U-Boot提供了丰富的命令行接口,便于用户在开发和调试阶段进行交互操作。下面列举了一些常用的U-Boot命令,这些命令对于理解引导加载过程和系统调试至关重要。
基础命令
- help / ? - 显示所有可用命令的帮助信息。
- version - 显示U-Boot版本信息。
- printenv / penv - 列出所有环境变量。
- setenv / set - 设置或修改环境变量。例如:
setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rw'
。 - saveenv - 保存修改后的环境变量到非易失性存储中。
- boot / bootm - 加载并启动内核。
bootm
用于启动经过U-Boot格式处理过的映像。 - reset - 重启系统。
- halt - 关闭系统。
文件操作
- loadb / loadh - 通过串口加载二进制文件到内存。
loadb
用于ASCII模式,loadh
用于十六进制模式。 - loads - 通过网络加载文件到内存。
- mmc - 控制MMC/eMMC设备。例如:
mmc dev 0
选择设备0。 - fatload / ext2load - 从存储设备加载文件。
fatload
用于FAT文件系统,ext2load
用于EXT2/EXT3文件系统。 - nand - 控制NAND Flash设备,如擦除、读写等操作。
内存操作
- md / mdc - 显示内存内容。
md
用于十六进制显示,mdc
用于ASCII显示。 - mw - 写入内存内容。
- meminfo - 显示内存使用情况。
网络配置
- ipaddr - 设置IP地址。
- serverip - 设置服务器IP地址。
- netmask - 设置子网掩码。
- gatewayip - 设置默认网关。
- dhcp - 使用DHCP协议自动配置网络。
- ping - 测试网络连通性。
执行控制
- go / bootm - 跳转到指定地址执行代码,常用于启动内核或应用程序。
- bootd / bootz - 用于启动zImage格式的Linux内核,
bootd
是较旧的命令,bootz
是支持DTB(设备树)的新命令。 - bootelf - 加载并启动ELF格式的可执行文件。
其他高级或特殊用途命令
- flinfo - 显示闪存设备信息。
- iminfo / imx - 显示映像文件信息。
iminfo
用于查看映像头信息,imx
用于解压映像。 - fdt - 操作设备树(Device Tree)二进制文件,如加载、显示等。
- bootscript - 执行预定义的脚本命令序列。
- env print - 与
printenv
相同,显示环境变量。 - compare - 比较两块内存区域的内容。
结论
U-Boot提供的命令集覆盖了从硬件初始化、文件操作、网络配置到系统启动的各个方面,为嵌入式系统开发和维护提供了强大的支持。熟悉并熟练运用这些命令,可以帮助开发者高效地完成系统引导和调试任务。在实际操作中,可以根据具体硬件平台和需求,查阅U-Boot的官方文档或社区资源,以获取更详尽的命令使用方法和示例。