U-Boot常用命令完全指南
U-Boot常用命令完全指南
——嵌入式开发必备技能手册
📚 目录
- 环境变量管理
- 网络配置与调试
- 文件传输与模块操作
- 系统控制与调试
- 思维导图总结
1️⃣ 环境变量管理
U-Boot通过环境变量存储系统配置,断电后自动保存至Flash。
核心命令:
# 查看所有环境变量
printenv # 设置IP地址
setenv ipaddr 192.168.1.100 # 保存变量到Flash
saveenv
应用场景:
=> setenv serverip 192.168.1.1 # 设置TFTP服务器IP
=> setenv bootcmd 'tftp 82000000 zImage; bootm' # 定义自动启动命令
=> saveenv # 永久保存
预期输出:
Saving Environment to Flash...
2️⃣ 网络配置与调试
网络功能是U-Boot的核心能力,支持TFTP/NFS等协议。
网络基础配置:
# 设置开发板IP
ifconfig eth0 192.168.1.100 # 测试网络连通性
ping 192.168.1.1
实战示例:
=> ifconfig eth0 192.168.1.100
=> ping 192.168.1.1
Using ethernet@ff0e0000 device
host 192.168.1.1 is alive # 成功响应
Linux网络管理(系统启动后):
# 查看网卡状态
nmcli device status # 设置静态IP
nmcli connection modify eth0 ipv4.addresses '192.168.1.100/24'
nmcli connection modify eth0 ipv4.gateway '192.168.1.1'
nmcli connection up eth0
3️⃣ 文件传输与模块操作
U-Boot文件传输:
# 从TFTP服务器下载内核
tftp 0x82000000 zImage # 从NFS加载根文件系统
nfs 0x83000000 192.168.1.1:/nfsroot
Linux模块操作(系统启动后):
# 赋予脚本执行权限
chmod +x load_driver.sh # 加载驱动模块
insmod led_drv.ko # 查看已加载模块
lsmod # 卸载模块
rmmod led_drv
驱动加载脚本示例:
#!/bin/bash
./load_driver.sh "drivers/led/led_drv.ko"
预期输出:
led_drv: module loaded
4️⃣ 系统控制与调试
启动流程控制:
# 设置启动参数
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 # 手动启动内核
bootm 0x82000000
硬件调试技巧:
# 查看内存信息
bdinfo # 测试内存
mtest 0x80000000 0x80010000 # 读写寄存器
mw 0xFFFF0000 0x1234 # 写寄存器
md 0xFFFF0000 1 # 读寄存器
寄存器操作输出:
FFFF0000: 00001234
5️⃣ 思维导图总结
💡 最佳实践建议:
- 关键环境变量(如
bootcmd
)设置后务必saveenv
- TFTP传输时确保服务器路径正确,防火墙开放69端口
- 驱动开发时用
lsmod
验证加载状态,dmesg
查看内核日志- 寄存器操作前确认地址,避免误写关键区域
扩展应用场景:
- 批量烧写设备:通过
setenv
预设MAC地址和IP,自动化烧录 - 远程更新:结合NFS+TFTP实现无物理接触的系统升级
- 硬件诊断:用
mtest
检测内存故障,md
监控传感器寄存器
掌握这些命令,你将能高效完成:
✅ 系统部署 ✅ 驱动调试 ✅ 硬件诊断 ✅ 生产烧录
欢迎在评论区分享你的U-Boot实战经验!