UBOOT命令使用
一、查看UBOOT所支持的命令
Help或者?
查看某一个命令的帮助信息:?+ 命令
二、信息查询命令
1.Bdinfo:查看板子信息。
2.printenv:查看当前板子的环境变量(都是字符串)。
3.Version:查看uboot的版本号。
三、环境变量操作命令
1.setenv:设置环境变量。也可以自定义环境变量。还可以删除环境变量。
删除环境变量:把环境变量设置为空值。例如:setenv xxx(要删除的换变量名)
例如:将环境变量bootdelay 改为5
写入完成后还得保存。
2.Saveenv: 保存环境变量。
注:setenv和saveenv是成对出现的!
四、内存操作命令
1. md命令:用于显示内存值
md[.b,.w,.l] address[#of objects]
.b:byte,.w:word,.l:long,分别表示1字节,2字节,4字节来显示内存值。
address:要查看的内存起始地址。
[#of objects]:表示要查看的数据长度。单位根据前面的.b,.w,.l,来选择
注:uboot中的数字都是十六进制的!
例如:查看0x80000000开始的20个字节的内存,显示格式为.b。
.b,.w,.l的区别:
2. nm命令:用于修改指定地址的内存值。
nm[.b,.w,.l] address
.b,.w,.l:指定格式。
address:修改地址的起始地址
修改完成后按q退出。
3. mm命令:也是修改指定位置内存的值。
nm命令相比mm命令修改过值后会自增。而nm命令不会。用法与nm命令一样。
4. mw命令:使用一个指定数据填充一段内存。
mw[.b,.w,.l]address value[count]
value:表示要填充的数据。
[count]:表示要填充的长度。
5.cp命令:数据拷贝命令,用于将DRAM中的数据从一段内存拷贝到另一段内存。或者把FLASH中的数据拷贝到DRAM中。
cp[.b,.w,.l] source target count
cource:源地址。
target:目标地址。
count:拷贝的长度。
6. cmp:命令:比较命令,用于比较两断内存是否相等
cmp[.b,.w,.l] addr1 addr2 count
addr1:第一段内存首地址。
addr2:第二段内存首地址。
count:比较的长度。
如果不相等的会返回不相等的地址
五、网络操作命令
重点:电脑与开发板的网络要处于同一网段。
设置环境变量。
1.ping命令:查看开发板网络是否能使用,是否和ubuntu主机进行通讯。
Ping + 服务器IP
查看服务器IP 用ifconfig 每个人的IP不同,需要查看自己的IP
开发板终端ping上ubuntu系统
显示 is alive表示ping成功了。
2.dhcp命令:从路由器获取IP地址,前提是开发板连接到路由器上,如果开发板和电脑是直接连接的,那么dhcp命令失效。
3.nfs命令:网络文件系统,通过nfs可以在计算机之间通过网络分享。目的是为了调试。
注:使用前ubuntu系统要先配置nfs相关配置。
Nfs[loadAddress][[hostIPaddr:]bootfilename]
Loadaddress:要保存的DRAM地址
[hostIPaddr:]bootfilename:要下载的文件地址
例如:在ubuntu下的nfs目录中有一个Linux镜像,通过serialCRT将其下载到开发板的DDR中就可以用nfs命令。
4.tftp命令:和nfs命令一样,通过网络下载文件到DDR中,只是 tftp 命令
使用的 TFTP 协议, Ubuntu 主机作为 TFTP 服务器。因此需要在 Ubuntu 上搭建 TFTP 服务器,需要安装 tftp-hpa 和 tftpd-hpa。也需要在ubuntu下创建一个目录来存放文件。
Tftp[loadaddress][[hostIPaddr:]bootfilename]
Loadaddr:要将拷贝的文件存放在DDR中的位置。
[[hostIPaddr:]bootfilename]:是要从 Ubuntu 中下载的文件。但是和 nfs 命令的区别在于, tftp 命令不需要输入文件在 Ubuntu 中的完整路径,只需要输入文件名即可。比如我们现在将 tftpboot 文件夹里面的 zImage 文件下载到开发板 DRAM 的 0X80800000 地址处,命令如下:
tftp 80800000 zImage
注:tftp目录要和传输的文件都需要高权限,不然下载会失败。同时,ubuntu和开发板也需要连接到同一网段。
六、 EMMC和SD卡操作命令
1.mmc info命令:
2.mmc rescan 命令:扫描当前所有mmc设备,包括emmc和sd卡。
3.mmc list 命令:用来查看当前开发板有几个MMC设备。
4.mmc dev 命令:切换当前MMC设备。
mmc dev 0:
5.mmc part 命令:查看SD卡或者EMMC的分区。
mmc part:(SD卡)
6.mmc read命令:读取mmc设备的数据。
mmc read addr blk#cnt
addr:读取到数据存放在哪。
blk:要读取的块的起始地址。
cnt:读取块的数量。
例如:
将mmc分区为0x600的地址块开始读,读16个块的大小,存放到80800000的地方。
7.mmc write命令:将数据写到MMC设备里面。
mmc write addr blk# cnt
和mmc read 一样。
七、FAT格式文件操作系统命令
1.fatinfo命令:用于查询指定MMC设备分区的文件系统信息。
fatinfo <interface> [<dev>[:part]]
interface 表示接口,比如mmc。
dev:表示查询的设备号。
part:表示要查询的分区。
2.Fatls命令:查询FAT格式设备的目录和文件信息。
fatinfo <interface> [<dev>[:part]][directory]
interface 表示接口,比如mmc。
dev:表示查询的设备号。
part:表示要查询的分区。
directory:要查询的目录。
3.Fstype命令:查看MMC设备某个分区的文件系统格式。
fstype <interface> <dev>:<part>
interface 表示接口,比如mmc。
dev:表示查询的设备号。
part:表示要查询的分区。
4.fatload 命令:用于将指定文件读取到DRAM中。
fatload <intertface> [<dev>{:part}{<addr>[<filenname>[bytes][pos]]}]
interface 表示接口,比如mmc。
dev:表示查询的设备号。
part:表示要查询的分区。
addr: 保存到DRAM中的起始地址。
filename: 要读取的文件的名字。
bytes:读取多少个字节。
pos:要读取的文件相对于文件首地址偏移多少。
八、EXT格式文件操作命令
Uboot有ext2,和ext4两种文件格式的操作命令。常用的4个命令分别为ext2load、ext2ls、ext4load、ext4ls和ext4wtite。这些命令和使用FAT操作一样。比如在MMC分区2中就是ext4格式的根文件系统。
例如:extls mmc 1:2
九、BOOT操作命令
Uboot的本质是引导启动Linux运行,boot就是对UBOOT的引导启动
1.Bootz命令:用于启动zImage(Liunx镜像)。
Bootz[addr[initrd[:size] [fdt]]]
addr:Linux镜像文件在DRAM中的位置,
initrd:initrd文件的地址,如果不使用的用 ‘-’ 替代
fdt:设备树文件(.dtb)在DRAM中的地址
先使用tftp将zImage和.dtb设备树文件下载到80800000和83000000位置,在使用bootz启动
2.Bootm命令:用于启动uImage镜像文件的。
uImage(uImage是一种包含压缩和非压缩内核镜像的格式,它能够根据实际情况选择合适的解压缩方式)。
Bootm addr //不适用设备树情况
Bootm [addr[initrd[:size]] [fdt]]
注:使用与bootz一样,只是启动的镜像不同,一个是非压缩镜像,一个是压缩镜像。
3.Boot命令:用来启动Linux系统。
Boot会读取环境变量bootcmd来启动Linux系统。Bootcmd就是启动的一些命令的集合。可以修改。
注:本质和前面的bootz命令一样,也是启动镜像和设备树。
十、其他常用命令
1.Reset命令:复位命令。
2.Run命令:用来运行环境变量中定义的命令。
例如 run bootcmd