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”命令还可以查看命令的具体用法。
一、环境变量相关
| 序号 | 命令 | 功能 | 示例 |
| 1 | printenv | 打印环境变量 | printenv |
| 2 | setenv | 设置环境变量 | # 设置环境变量a的值为123 setenv a '123' # 清除环境变量a setenv a |
| 3 | saveenv | 保存当前环境变量到flash | saveenv |
二、内存操作相关
| 序号 | 命令 | 功能 | 示例 |
| 1 | md | 用于显示内存值 | md 0x80000000 |
| 2 | nm | 用于修改指定地址的内存值 | |
| 3 | mm | 用于修改指定地址的内存值,与nm命令的区别是,mm修改内存值时地址会自增 | |
| 4 | mw | 用于使用一个指定的数据填充一段内存 | |
| 5 | cp | 拷贝命令,用于将内存中的数据从一段内存拷贝到另一段内存中 | |
| 6 | cmp | 比较命令,用于比较两段内存的数据是否相等 |
三、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格式文件系统操作命令
| 序号 | 命令 | 功能 | 示例 |
| 1 | fatinfo | 用于查询指定MMC设备分区的文件系统信息 | |
| 2 | fatls | 用于查询FAT格式设备的目录和文件信息 | |
| 3 | fstype | 用于查看设备某个分区的文件系统格式 | |
| 4 | fatload | 从第0个存储设备的第1个分区的根目录读出uImage文件到内存地址0x80008000 | fatload mmc 0:1 0x80008000 uImage |
| 5 | fatwrite | 把内存地址0x80008000开始的0x35个字节数据写入到第0个设备的第1个分区里,文件名为my.txt | fatwrite 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 |
六、网络操作命令
| 序号 | 命令 | 功能 | 示例 |
| 1 | ping | 查看网络是否能使用 | ping 8.8.8.8 |
| 2 | dhcp | 用于从路由器获取IP地址,前提是开发板与路由器连接 | |
| 3 | nfs | 网络文件系统,可以在计算机之间通过网络来分享资源 | |
| 4 | tftp | 通过使用TFTP协议网络下载文件到内存 | tftp 80800000 zImage |
七、BOOT操作命令
| 序号 | 命令 | 功能 | 示例 |
| 1 | bootz | 用于启动zImage镜像文件 | # 启动zImage、dtb、kernel bootz 80800000 - 83000000 |
| 2 | bootm | 用于启动uImage镜像文件 | |
| 3 | boot | 用于启动Linux系统的,该命令会读取环境变量bootcmd来启动Linux |
八、其他命令
| 序号 | 命令 | 功能 | 示例 |
| 1 | reset | 重启设备 | |
| 2 | go | 跳转到指定地址执行应用 | go 80800000 |
| 3 | run | run运行环境变量定义的命令 | |
| 4 | bdinfo | 查看板子信息 | |
| 5 | version | U-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