U-Boot 还提供了更加详细的命令帮助,可以通过”?” 显示支持的命令列表, 通过help [CommandName] 命令还可以查看每个命令的参数说明。
1 、 bootm
bootm [addr [arg ...]]
- boot application image stored in memory
passing arguments 'arg ...'; when booting a Linux kernel,
'arg' can be the address of an initrd image
bootm 命令可以引导启动存储在内存中的程序映像。这些内存包括RAM 和可以永久保存的Flash 。
第1 个参数addr 是程序映像的地址,这个程序映像必须转换成U-Boot 的格式。
第2 个参数对于引导Linux 内核有用,通常作为U-Boot 格式的RAMDISK 映像存储地址;也可以是传递给Linux 内核的参数(缺省情况下传递bootargs 环境变量给内核)。
附加说明: 要求二进制代码为制定格式的。通常为mkimage 处理过的二进制文件。起动UBOOT TOOLS 制作的压缩LINUX 内核, bootm 3200000
2 、 bootp
bootp [loadAddress] [bootfilename]
bootp 命令通过bootp 请求,要求DHCP 服务器分配IP 地址,然后通过TFTP 协议下载指定的文件到内存。
第1 个参数是下载文件存放的内存地址。
第2 个参数是要下载的文件名称,这个文件应该在开发主机上准备好。
附加说明 : 通过网络启动,需要提前设置好硬件地址 bdinfo 打印ARM相关信息
3 、 cmp
cmp [.b, .w, .l] addr1 addr2 count
- compare memory
cmp 命令可以比较2 块内存中的内容。.b 以字节为单位;.w 以字为单位;.l 以长字为单位。注意:cmp.b 中间不能保留空格,需要连续敲入命令。
第1 个参数addr1 是第一块内存的起始地址。
第2 个参数addr2 是第二块内存的起始地址。
第3 个参数count 是要比较的数目,单位按照字节、字或者长字。
4 、 cp
cp [.b, .w, .l] source target count
- copy memory
cp 命令可以在内存中复制数据块,包括对Flash 的读写操作。
第1 个参数source 是要复制的数据块起始地址。
第2 个参数target 是数据块要复制到的地址。这个地址如果在Flash 中,那么会直接调用写Flash 的函数操作。所以U-Boot 写Flash 就使用这个命令,当然需要先把对应Flash 区域擦净。
第3 个参数count 是要复制的数目,根据cp.b cp.w cp.l 分别以字节、字、长字为单位。
5 、 crc32
crc32 address count [addr]
- compute CRC32 checksum [save at addr]
crc32 命令可以计算存储数据的校验和。
第1 个参数address 是需要校验的数据起始地址。
第2 个参数count 是要校验的数据字节数。
第3 个参数addr 用来指定保存结果的地址。
coninfo
打印ARM相关信息
6 、 echo
echo [args..]
- echo args to console; c suppresses newline
echo 命令回显参数。
用法:echo $( bootcmd)
7
、
erase
erase start end
- erase FLASH from addr 'start' to addr 'end'
erase N:SF[-SL]
- erase sectors SF-SL in FLASH bank # N
erase bank N
- erase FLASH bank # N
erase all
- erase all FLASH banks
erase
命令可以擦Flash
。
参数必须指定Flash
擦除的范围。
按照起始地址和结束地址,start
必须是擦除块的起始地址;end
必须是擦除末尾块的结束地址。这种方式最常用。举例说明:擦除0x20000 – 0x3ffff
区域命令为erase 20000 3ffff
。
按照组和扇区,N
表示Flash
的组号,SF
表示擦除起始扇区号,SL
表示擦除结束扇区号。另外,还可以擦除整个组,擦除组号为N
的整个Flash
组。擦除全部Flash
只要给出一个all
的参数即可。
用法:
写入数据之前必须先执行该命令
用法: erase 0xc******* +0xYYYYYYYY
说明:
擦除从0xc*******
开始的0xYYYYYYYY
字节(
字节必须块对齐)
例:
Z228 # erase 0xc4040000 +0x180000
........................ done
Erased 24 sectors
附加: erase 1:0-2(
就是对每一块FLASH
的0-2
扇区进行删除)
h. cp.b
拷贝数据,从指定源地址到目标地址,地址可以是ram
,也可以是nor flash
用法: cp.b 0x******** 0x######## 0xYYYYYYYY
说明:
拷贝源0x********
到目标0x########,
共拷贝0xYYYYYYY
字节
例:
Z228 # cp.b 0x200000 0xc4040000 0x180000
Copy to Flash... done
8
、
flinfo
flinfo
- print information for all FLASH memory banks
flinfo N
- print information for FLASH memory bank # N
flinfo
命令打印全部Flash
组的信息,也可以只打印其中某个组。一般嵌入式系统的Flash
只有一个组。
9
、
go
go addr [arg ...]
- start application at address 'addr'
passing 'arg' as arguments
go
命令可以执行应用程序。
第1
个参数是要执行程序的入口地址。
第2
个可选参数是传递给程序的参数,可以不用。
10
、iminfo
iminfo addr [addr ...]
- print header information for application image starting at
address 'addr' in memory; this includes verification of the
image contents (magic number, header and payload checksums)
iminfo
可以打印程序映像的开头信息,包含了映像内容的校验(序列号、头和校验和)。
第1
个参数指定映像的起始地址。
可选的参数是指定更多的映像地址。
11
、
loadb
loadb [ off ] [ baud ]
- load binary file over serial line with offset 'off' and baudrate 'baud'
loadb
命令可以
通过串口
Kermit
协议下载二进制数据。
12
、
loads
loads [ off ]
- load S-Record file over serial line with offset 'off'
loads
命令可以通过串口线下载S-Record
格式文件。
13
、
mw
mw [.b, .w, .l] address value [count]
- write memory
mw
命令可以按照字节、字、长字写内存,.b .w .l
的用法与cp
命令相同。
第1
个参数address
是要写的内存地址。
第2
个参数value
是要写的值。
第3
个可选参数count
是要写单位值的数目。
用法
:
mw 32000000 ff 10000(
把内存0x32000000
开始的0x10000
字节设为0xFF)
14
、
nm
nm [.b, .w, .l] address
- memory modify, read and keep address
nm
命令可以修改内存,可以按照字节、字、长字操作。
参数address
是要读出并且修改的内存地址。
15
、
Md
显示内存区的内容。
16
、
Mm
读或修改内存,地址自动递增。
mm 内存地址 回车 此时进入内存查看 直接按回车 保持原内容不变,若要改变,在问号后面输入数值然后回车 按 . 此符号退出 17
、
nfs
nfs [loadAddress] [host ip addr:bootfilename]
nfs
命令可以使用NFS
网络协议通过网络启动映像。
用法
:
nfs 32000000 192.168.0.2:aa.txt 16
、
printenv
printenv
- print values of all environment variables
printenv name ...
- print value of environment variable 'name'
printenv
命令打印环境变量。
可以打印全部环境变量,也可以只打印参数中列出的环境变量。
18
、
protect
protect on start end
- protect Flash from addr 'start' to addr 'end'
protect on N:SF[-SL]
- protect sectors SF-SL in Flash bank # N
protect on bank N
- protect Flash bank # N
protect on all
- protect all Flash banks
protect off start end
- make Flash from addr 'start' to addr 'end' writable
protect off N:SF[-SL]
- make sectors SF-SL writable in Flash bank # N
protect off bank N
- make Flash bank # N writable
protect off all
- make all Flash banks writable
protect
命令是对Flash
写保护的操作,可以使能和解除写保护。
第1
个参数on
代表使能写保护;off
代表解除写保护。
第2
、3
参数是指定Flash
写保护操作范围,跟擦除的方式相同。
用法
:
protect on 1:0-3(
就是对第一块
FLASH
的
0-3
扇区进行保护
)
protect off 1:0-3
取消写保护
protect off bank 1
解除
/
使能
第
N
块
FLASH
的写保护
19
、
rarpboot
rarpboot [loadAddress] [bootfilename]
rarboot
命令可以使用TFTP
协议通过网络启动映像。也就是把指定的文件下载到指定地址,然后执行。
第1
个参数是映像文件下载到的内存地址。
第2
个参数是要下载执行的映像文件。
20
、
run
run var [...]
- run the commands in the environment variable(s) 'var'
run
命令可以执行环境变量中的命令,后面参数可以跟几个环境变量名。
用法
:
Uboot> setenv flashit tftp 20000000 mycode.bin/; erase 10020000 1002FFFF/;
21
、
setenv
setenv name value ...
- set environment variable 'name' to 'value ...'
setenv name
- delete environment variable 'name'
setenv
命令可以设置环境变量。
第1
个参数是环境变量的名称。
第2
个参数是要设置的值,如果没有第2
个参数,表示删除这个环境变量。
用法
:
Uboot> setenv myboard AT91RM9200DK
22
、
Saveenv
保存环境变量
命令将当前定义的所有的变量及其值存入flash
中。用来存储变量及其值的空间只有8k
字节,应不要超过。
23
、
sleep
sleep N
- delay execution for N seconds (N is _decimal_ !!!)
sleep
命令可以延迟N
秒钟执行,N
为十进制数。
24
、
tftpboot
tftpboot [loadAddress] [bootfilename]
tftpboot
命令可以使用TFTP
协议通过网络下载文件。按照二进制文件格式下载。另外使用这个命令,必须配置好相关的环境变量。例如serverip
和ipaddr
。
第1
个参数loadAddress
是下载到的内存地址。
第2
个参数是要下载的文件名称,必须放在TFTP
服务器相应的目录下。
25
、
ping
注:只能开发板PING
别的机器
26
、
usb
usb start:
起动usb
功能
27
、
kgo
起动没有压缩的linux
内核
kgo 32000000
27
、
fatls
列出DOS FAT
文件系统
fatls usb 0
列出第一块U
盘中的文件
28
、
fatload
读入FAT
中的一个文件
fatload usb 0:0 32000000 aa.txt
把USB
中的aa.txt
读到物理内存0x32000000
处!
把192.168.0.2(LINUX
的NFS
文件系统)
中的NFS
文件系统中的aa.txt
读入内存0x32000000
处。
cp.b 20000000 10020000 8000
Uboot> saveenv
Uboot> run flashit
Uboot> printenv
baudrate=115200
ipaddr=192.168.1.1
ethaddr=12:34:56:78:9A:BC
serverip=192.168.1.5
myboard=AT91RM9200DK
Environment size: 102/8188 bytes
usb info:
列出设备
usb scan:
扫描usb storage(u
盘)
设备