U-BOOT命令示例

U-boot(universal bootloader)是一种可以用于多种嵌入式CPU的BootLoader程序,也就是说,U-boot是bootloader的一个子集,U-boot的核心作用就是启动操作系统内核,U-boot的本质就是一段裸机程序。U-Boot支持的处理器架构包括PowerPC、ARM、MIPS、x86,它的功能强大,涵盖了绝大部分处理器架构,提供了大量的外设驱动,支持多个文件系统,附带调试、脚本和引导等工具。并且U-Boot的可配置性非常的强,它所支持的命令也可以通过配置来增减。U-Boot的命令主要包括以下几类:信息类命令、环境变量类命令、存储器命令、Flash专用命令、载类命令、启动命令和Cache命令。

下面我们来简单的介绍一下常用的一些命令。

进入uboot命令行模式后输入“help”或“?”,回车后即可查看当前uboot所支持的命令,使用“help cmd”或“? cmd”命令还可以查看命令的具体用法。

一、环境变量相关

序号命令功能示例
1printenv打印环境变量printenv
2setenv设置环境变量# 设置环境变量a的值为123
setenv a '123'
# 清除环境变量a
setenv a
3saveenv保存当前环境变量到flashsaveenv

二、内存操作相关

序号命令功能示例
1md用于显示内存值md 0x80000000
2nm用于修改指定地址的内存值
3mm用于修改指定地址的内存值,与nm命令的区别是,mm修改内存值时地址会自增
4mw用于使用一个指定的数据填充一段内存
5cp拷贝命令,用于将内存中的数据从一段内存拷贝到另一段内存中
6cmp比较命令,用于比较两段内存的数据是否相等

三、EMMC和SD卡操作命令

# 输出MMC设备信息
mmc info
# 读取MMC中的0x600地址的0x10个块内容到内存地址0x90000000
mmc read 0x90000000 0x600 0x10
# 将内存地址0x90000000向MMC中写入MMC中的0x600地址的0x10个块
mmc write 0x90000000 0x600 0x10
# 扫描MMC设备
mmc rescan
# 列出MMC设备的分区
mmc part
# 切换MMC设备
mmc dev
# 列出当前有效的所有MMC设备
mmc list

四、FAT格式文件系统操作命令

序号命令功能示例
1fatinfo用于查询指定MMC设备分区的文件系统信息
2fatls用于查询FAT格式设备的目录和文件信息
3fstype用于查看设备某个分区的文件系统格式
4fatload从第0个存储设备的第1个分区的根目录读出uImage文件到内存地址0x80008000fatload mmc 0:1 0x80008000 uImage
5fatwrite把内存地址0x80008000开始的0x35个字节数据写入到第0个设备的第1个分区里,文件名为my.txtfatwrite mmc 0:1 0x80008000 my.txt 0x35

五、NAND操作命令

# 用于打印NAND Flash信息
nand info
# 用于切换NAND Flash
nand device
# 用于擦除0x100000起始地址的0x100大小的内存数据为空
nand erase 0x100000 0x100
# 用于将nand的0x100000的0x100大小的数据读取到0x80000000内存地址
nand read 0x80000000 0x100000 0x100
# 用于将0x80000000内存地址的0x100大小的数据写入nand的0x100000中
nand write 0x80000000 0x100000 0x100

六、网络操作命令

序号命令功能示例
1ping查看网络是否能使用ping 8.8.8.8
2dhcp用于从路由器获取IP地址,前提是开发板与路由器连接
3nfs网络文件系统,可以在计算机之间通过网络来分享资源
4tftp通过使用TFTP协议网络下载文件到内存tftp 80800000 zImage

七、BOOT操作命令

序号命令功能示例
1bootz用于启动zImage镜像文件# 启动zImage、dtb、kernel
bootz 80800000 - 83000000
2bootm用于启动uImage镜像文件
3boot用于启动Linux系统的,该命令会读取环境变量bootcmd来启动Linux

八、其他命令

序号命令功能示例
1reset重启设备
2go跳转到指定地址执行应用go 80800000
3runrun运行环境变量定义的命令
4bdinfo查看板子信息
5versionU-BOOT版本信息

常见的一些环境变量示例:

#开发板IP地址
setenv ipaddr 192.168.10.50
#开发板MAC地址
setenv ethaddr b8:ae:1d:01:00:00
#网关地址
setenv gatewayip 192.168.10.1
#子网掩码
setenv netmask 255.255.255.0
#服务器IP地址
setenv serverip 192.168.10.100
# 引导命令,启动的时候会执行的命令
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 boot.dtb; bootz 80800000 - 83000000'
# uboot给kennel传参
bootargs=console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext3

参考文章:

https://www.bilibili.com/read/cv16450222

https://blog.csdn.net/kunkliu/article/details/95618578

https://blog.csdn.net/qixjocd12345/article/details/108274276

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注