文章目录
1、信息查询命令
常用的信息查询有关的命令有三个:bdinfo、printenv、version。
命令 | 描述 |
---|---|
bdinfo | 查看板子信息 |
printenv | 输出环境变量信息 |
version | 查看uboot的版本号 |
2、环境变量操作命令
环境变量的操作涉及到两个命令:setenv和saveenv。
setenv命令用于创建、修改环境变量的值,也可以用于删除环境变量;
saveenv命令用于保存修改后的环境变量。
一般环境变量是存放在外部flash中的,uboot启动的时候会将环境变量从flash读取到DRAM中,所以使用命令setenv修改的是DRAM中的环境变量值,修改后需使用saveenv命令将环境变量保存到flash中。
3、内存操作命令
内存操作命令就是用于直接对 DRAM 进行读写操作的,常用的内存操作命令有 md、 nm、mm、 mw、 cp 和 cmp。
4、网络操作命令
uboot是支持网口的,在移植uboot的时候都要调通网络的功能,因为在移植linux内核的时候需要用到uboot的网络功能做调试。uboot支持的网络相关的命令有:dhcp、ping、nfs、ftfpboot。
使用网络调试前需先设置好下列几个环境变量。
环境变量 | 描述 |
---|---|
ipaddr | 开发板的IP地址,可以通过dhcp命令从路由器获取IP |
ethaddr | 开发板的MAC地址,一定要设置 |
gatewayip | 网关地址 |
netmask | 子网掩码 |
serverip | 服务器IP地址,也就是ubuntu主机的IP地址,用于调试 |
setenv ipaddr 192.168.1.50
setenv ethaddr b8:ae:1d:01:00:00
setenv gatewayip 192.168.1.1
setenv netmask 255.255.255.0
setenv serverip 192.168.1.253
saveenv
5、EMMC和SD卡操作命令
uboot支持EMMC和SD卡,提供了EMMC和SD卡的操作命令。一般认为EMMC和SD卡就是同一个东西,所以没有特殊说明,统一使用MMC来代指EMMC和SD卡。uboot中常用于操作MMC设备的命令为:mmc
。
mmc是一系列的命令,后面可以跟不同的参数,输入“? mmc”即可查看mmc有关的命令。如下图所示:
mmc后面跟不同的参数可以实现不同的功能。
命令 | 描述 |
---|---|
mmc info | 输出MMC设备信息 |
mmc read | 读取MMC中的数据 |
mmc write | 向MMC设备写入数据 |
mmc rescan | 扫描MMC设备 |
mmc part | 列出MMC设备的分区 |
mmc dev | 切换MMC设备 |
mmc list | 列出当前有效的所有MMC设备 |
mmc hwpartition | 设置MMC设备的分区 |
mmc bootbus … | 设置指定MMC设备的BOOT_BUS_WIDTH域的值 |
mmc bootpart … | 设置指定MMC设备的boot和RPMB分区的大小 |
mmc partconf … | 设置指定MMC设备的PARTITION_CONFG域的值 |
mmc rst | 复位MMC设备 |
mmc setdsr | 设置DSR寄存器的值 |
6、FAT格式文件系统操作命令
有时候需要在uboot中对SD卡或者EMMC中存储的文件进行操作,此时就需要用到文件操作命令,根文件操作相关的命令有:fatinfo、fatls、fatype、fatload和fatwrite。
- interface:表示接口,比如mmc;
- dev:查询的设备号;
- part:要查询的分区;
- directory:要查询的目录;
- addr:读写数据在DRAM中的起始地址;
- filename:读写的文件名;
- bytes:读写数据字节数;
- pos:要读取的文件相对文件首地址的偏移;
7、EXT格式文件系统操作命令
uboot有ext2和ext4两种格式的文件系统的操作命令,常用命令为:ext2load、ext2ls、ext4load、ext4ls和ext4write。这些命令的含义和使用方式与fatload、fatls和fatwrite一样。
8、NAND操作命令
在uboot中输入“? nand”即可查看NAND相关命令,如下图所示:
命令 | 描述 |
---|---|
nand info | 打印NAND Flash信息 |
nand device | 切换NAND Flash |
nand errase | 擦除NAND Flash |
nand write | 向NAND Flash指定地址写入指定的数据 |
nand read | 从NAND Flash指定的地址读取数据到DRAM中 |
- nand errase
NAND Flash 的特性决定了在向 NAND Flash 写数据之前一定要先对要写入的区域进行擦除。 nand erase命令有三种形式:
nand erase[.spread] [clean] off size //从指定地址开始(off)开始,擦除指定大小(size)的区域。
nand erase.part [clean] partition //擦除指定的分区
nand erase.chip [clean] //全篇擦除
NAND 的擦除命令一般是配合写命令的。
- nand write
此命令用于向 NAND 指定地址写入指定的数据,一般和“nand erase”命令配置使用来更新NAND 中的 uboot、 linux kernel 或设备树等文件,命令格式如下:
nand write addr off size
addr 是要写入的数据在DRAM中首地址, off 是 NAND 中的目的地址, size 是要写入的数据大小。
- nand read
此命令用于从 NAND 中的指定地址读取指定大小的数据到 DRAM 中,命令格式如下:
nand read addr off size
addr 是DRMA目的地址, off 是要读取的 NAND 中的数据源地址, size 是要读取的数据大小。
9、BOOT操作命令
uboot的主要目的是引导linux,uboot中用于引导linux的命令有:bootz、bootm、boot。
- bootz命令用于启动zImage镜像文件。
#命令格式
bootz [addr [initrd[:size]] [fdt]]
#使用示例
bootz 80800000 - 83000000
bootz有三个参数:
addr:linux镜像文件在DRAM中的位置;
initrd:initrd文件在DRAM中的位置,如果不适用initrd的话使用“-”代替即可;
fdt:设备树文件在DRMA中的位置。
- bootm命令用于启动uImage文件。
如果不适用设备树的话,启动内核命令如下:
bootm addr
addr 是 uImage 镜像在 DRAM 中的首地址。
如果要使用设备树,那么 bootm 命令和 bootz 一样,命令格式如下
bootm [addr [initrd[:size]] [fdt]]
addr:是 uImage 在 DRAM 中的首地址;
initrd:是 initrd 的地址,如果 initrd 为空的话,同样是用“-”来替代 ;
fdt:是设备树(.dtb)文件在 DRAM 中的首地址。
- boot命令
boot会读取环境变量bootcmd来启动linux系统。bootcmd是一个很重要的环境变量,其保存这引导命令,其实就是启动的命令集合。
比如我们要想使用 tftp 命令从网络启动 Linux 那么就可以设置 bootcmd 为tftp 80800000 zImage; tftp 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb; bootz 80800000 -83000000
,然后使用 saveenv 将 bootcmd 保存起来。然后直接输入 boot 命令即可从网络启动Linux 系统,命令如下:
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb;bootz 80800000 - 83000000'
saveenv
boot
10、其他操作命令
uboot中还有其他一些常用命令:reset、go、run和mtest等。
命令 | 描述 | 格式 |
---|---|---|
reset | 复位重启 | reset |
go | 跳转到指定地址处执行应用 | go addr [args…] |
run | 运行环境变量中定义的命令 | run bootcmd |
mtest | 内存读写测试,测试DDR | mtest start end pattren iterations |