加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

U-Boot命令详解

发布时间:2020-12-15 06:53:08 所属栏目:百科 来源:网络整理
导读:U-Boot 还提供了更加详细的命令帮助,可以通过” ? ”显示支持的命令列表 , 通过 help?[CommandName] 命令还可以查看每个命令的参数说明。 1 、 bootm bootm?[addr?[arg?...]] ????-?boot?application?image?stored?in?memory ??????????passing?arguments?'

U-Boot还提供了更加详细的命令帮助,可以通过”?”显示支持的命令列表,通过help?[CommandName]命令还可以查看每个命令的参数说明。

1bootm

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

2bootp

bootp?[loadAddress]?[bootfilename]

bootp命令通过bootp请求,要求DHCP服务器分配IP地址,然后通过TFTP协议下载指定的文件到内存。

1个参数是下载文件存放的内存地址。

2个参数是要下载的文件名称,这个文件应该在开发主机上准备好。

附加说明:?通过网络启动,需要提前设置好硬件地址bdinfo打印ARM相关信息

3cmp

cmp?[.b,?.w,?.l]?addr1?addr2?count

?????-?compare?memory

cmp命令可以比较2块内存中的内容。.b以字节为单位;.w以字为单位;.l以长字为单位。注意:cmp.b中间不能保留空格,需要连续敲入命令。

1个参数addr1是第一块内存的起始地址。

2个参数addr2是第二块内存的起始地址。

3个参数count是要比较的数目,单位按照字节、字或者长字。

4cp

cp?[.b,?.l]?source?target?count

???????-?copy?memory

cp命令可以在内存中复制数据块,包括对Flash的读写操作。

1个参数source是要复制的数据块起始地址。

2个参数target是数据块要复制到的地址。这个地址如果在Flash中,那么会直接调用写Flash的函数操作。所以U-BootFlash就使用这个命令,当然需要先把对应Flash区域擦净。

3个参数count是要复制的数目,根据cp.b?cp.w?cp.l分别以字节、字、长字为单位。

5crc32

crc32?address?count?[addr]

?????-?compute?CRC32?checksum?[save?at?addr]???

crc32命令可以计算存储数据的校验和。

1个参数address是需要校验的数据起始地址。

2个参数count是要校验的数据字节数。

3个参数addr用来指定保存结果的地址。

coninfo?

打印ARM相关信息

6echo

echo?[args..]

??????-?echo?args?to?console;?c?suppresses?newline

echo命令回显参数。

用法:echo?$(?bootcmd

7erase

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

8flinfo

flinfo

???????-?print?information?for?all?FLASH?memory?banks

flinfo?N

???????-?print?information?for?FLASH?memory?bank?#?N

flinfo命令打印全部Flash组的信息,也可以只打印其中某个组。一般嵌入式系统的Flash只有一个组。

9go

go?addr?[arg?...]

??????-?start?application?at?address?'addr'

?????????passing?'arg'?as?arguments

go命令可以执行应用程序。

1个参数是要执行程序的入口地址。

2个可选参数是传递给程序的参数,可以不用。

10iminfo

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个参数指定映像的起始地址。

可选的参数是指定更多的映像地址。

11loadb

loadb?[?off?]?[?baud?]

?????-?load?binary?file?over?serial?line?with?offset?'off'?and?baudrate?'baud'

dKNLinux联盟loadb命令可以通过串口Kermit协议下载二进制数据。

12loads

loads?[?off?]

????-?load?S-Record?file?over?serial?line?with?offset?'off'

loads命令可以通过串口线下载S-Record格式文件。

13mw

mw?[.b,?.l]?address?value?[count]

?????-?write?memory

dKNLinux联盟mw命令可以按照字节、字、长字写内存,.b?.w?.l的用法与cp命令相同。

1个参数address是要写的内存地址。

2个参数value是要写的值。

3个可选参数count是要写单位值的数目。

用法:?mw?32000000?ff?10000(把内存0x32000000开始的0x10000字节设为0xFF)

14nm

nm?[.b,?.l]?address

?????-?memory?modify,?read?and?keep?address

nm命令可以修改内存,可以按照字节、字、长字操作。

参数address是要读出并且修改的内存地址。

15md?

显示内存区的内容。

16mm?

读或修改内存,地址自动递增。

mm?内存地址?回车

此时进入内存查看?直接按回车?保持原内容不变,若要改变,在问号后面输入数值然后回车?按?.?此符号退出

17nfs

nfs?[loadAddress]?[host?ip?addr:bootfilename]

nfs命令可以使用NFS网络协议通过网络启动映像。

用法:

nfs?32000000?192.168.0.2:aa.txt

192.168.0.2(LINUX?NFS文件系统)中的NFS文件系统中的aa.txt?读入内存0x32000000处。

16printenv

printenv

??????-?print?values?of?all?environment?variables

printenv?name?...

??????-?print?value?of?environment?variable?'name'

printenv命令打印环境变量。

可以打印全部环境变量,也可以只打印参数中列出的环境变量。

18protect

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代表解除写保护。

23参数是指定Flash写保护操作范围,跟擦除的方式相同。

用法:

protect?on?1:0-3(就是对第一块FLASH0-3扇区进行保护)

protect?off?1:0-3取消写保护

protect?off?bank?1?解除/使能?第?N?FLASH的写保护

19rarpboot

rarpboot?[loadAddress]?[bootfilename]

rarboot命令可以使用TFTP协议通过网络启动映像。也就是把指定的文件下载到指定地址,然后执行。

1个参数是映像文件下载到的内存地址。

2个参数是要下载执行的映像文件。

20run

run?var?[...]

??????-?run?the?commands?in?the?environment?variable(s)?'var'

run命令可以执行环境变量中的命令,后面参数可以跟几个环境变量名。

用法:

Uboot>?setenv?flashit?tftp?20000000?mycode.bin;?erase?10020000?1002FFFF;

cp.b?20000000?10020000?8000

Uboot>?saveenv

Uboot>?run?flashit

21setenv

setenv?name?value?...

??????-?set?environment?variable?'name'?to?'value?...'

setenv?name

??????-?delete?environment?variable?'name'

setenv命令可以设置环境变量。

1个参数是环境变量的名称。

2个参数是要设置的值,如果没有第2个参数,表示删除这个环境变量。

用法:?

Uboot>?setenv?myboard?AT91RM9200DK

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

22Saveenv?

保存环境变量

命令将当前定义的所有的变量及其值存入flash中。用来存储变量及其值的空间只有8k字节,应不要超过。

23sleep

sleep?N

??????-?delay?execution?for?N?seconds?(N?is?_decimal_?!!!)

sleep命令可以延迟N秒钟执行,N为十进制数。

24tftpboot

tftpboot?[loadAddress]?[bootfilename]

tftpboot命令可以使用TFTP协议通过网络下载文件。按照二进制文件格式下载。另外使用这个命令,必须配置好相关的环境变量。例如serveripipaddr

1个参数loadAddress是下载到的内存地址。

2个参数是要下载的文件名称,必须放在TFTP服务器相应的目录下。

25ping?

注:只能开发板PING别的机器

26usb

usb?start:?起动usb?功能

usb?info:?列出设备

usb?scan:?扫描usb?storage(u?)设备

27kgo?

起动没有压缩的linux内核

kgo?32000000

27fatls?

列出DOS?FAT文件系统

fatls?usb?0列出第一块U盘中的文件

28fatload?

读入FAT中的一个文件

fatload?usb?0:0?32000000?aa.txt?USB中的aa.txt?读到物理内存0x32000000处!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读