U-Boot命令大全(功能参数及用法)
U-Boot上电启动后,按任意键可以退出自动启动状态,进入命令行。
U-Boot 2010.03 (Sep 25 2011 - 16:18:50)
DRAM: 64 MB
Flash: 2 MB
NAND: 64 MiB
In: serial
Out: serial
Err: serial
Net: CS8900-0
Hit any key to stop autoboot: 1
在命令行提示符下,输入U-Boot的命令并执行。U-Boot可支持几十个常用命令,通过这些命令,可以对开发板进行调试,引导Linux内核,还可以擦写Flash完成系统部署等功能。掌握这些命令的使用,才能够顺利地进行嵌入式系统的开发。
输入help命令,可以得到当前U-Boot的所有命令列表。每一条命令后面是简单的命令说明。
U-Boot还提供了更加详细的命令帮助,通过help命令还可以查看每个命令的参数说明。由于开发过程的需要,有必要先把U-Boot命令的用法弄清楚。接下来,根据每一条命令的帮助信息,解释一下这些命令的功能和参数。
1)bootm命令
bootm命令可以引导启动存储在内存中的程序映像,这些内存包括RAM和可以永久保存的Flash。
# help bootm
bootm - boot application image from memory
Usage:
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
Sub-commands to do part of the bootm sequence. The sub-commands must beissued in
the order below (it's ok to not issue all sub-commands):
start [addr [arg ...]]
loados - load OS image
cmdline - OS specific command line processing/setup
bdt - OS specific bd_t processing
prep - OS specific prep before relocation or go
go - start OS
● 第1个参数addr是程序映像的地址,这个程序映像必须转换成U-Boot的格式。
● 第2个参数对于引导Linux内核有用,通常作为U-Boot格式的RAMDISK映像存储地址;也可以是传递给Linux内核的参数(默认情况下传递bootargs环境变量给内核)。
2)bootp命令
bootp命令要求DHCP服务器分配IP地址,然后通过TFTP协议下载指定的文件到内存。
# help bootp
bootp - boot image via network using BOOTP/TFTP protocol
Usage:
bootp [loadAddress] [[hostIPaddr:]bootfilename]
● 第1个参数是load Address下载文件存放的内存地址。
● 第2个参数是bootfilename要下载的文件名称,这个文件应该在开发主机上准备好。
3)cmp命令
cmp命令可以比较两块内存中的内容。.b以字节为单位;.w以字为单位;.l以长字为单位。注意:cmp.b中间不能保留空格,需要连续输入命令。
# help cmp
cmp - memory compare
Usage:
cmp [.b, .w, .l] addr1 addr2 count
● 第1个参数addr1是第一块内存的起始地址。
● 第2个参数addr2是第二块内存的起始地址。
● 第3个参数count是要比较的数目,单位是字节、字或者长字。
4)cp命令
cp命令可以在内存中复制数据块,包括对Flash的读写操作。
# help cp
cp - memory copy
Usage:
cp [.b, .w, .l] source target count
● 第1个参数source是要复制的数据块起始地址。
● 第2个参数target是数据块要复制到的地址。这个地址如果在Flash中,那么会直接调用写Flash的函数操作。所以U-Boot写Flash就使用这个命令,当然需要先把对应Flash区域擦干净。
● 第3个参数count是要复制的数目,根据cp.b、cp.w、cp.l分别以字节、字、长字为单位。
5)crc32命令
crc32命令可以计算存储数据的校验和。
# help crc32
crc32 - checksum calculation
Usage:
crc32 address count [addr]
- compute CRC32 checksum [save at addr]
● 第1个参数address是需要校验的数据起始地址。
● 第2个参数count是要校验的数据字节数。
● 第3个参数addr用来指定保存结果的地址。
6)echo命令
echo命令回显参数。
# help echo
echo - echo args to console
Usage:
echo [args..]
- echo args to console; \c suppresses newline
7)erase命令
erase命令可以擦除Flash。参数必须指定Flash擦除的范围。
# help erase
erase - erase FLASH memory
Usage:
erase start end
- erase FLASH from addr 'start' to addr 'end'
erase start +len
- erase FLASH from addr 'start' to the end of sect w/addr 'start'+'len'-1
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
按照起始地址和结束地址,start必须是擦除块的起始地址;end必须是擦除末尾块的结束地址,这种方式最常用。举例说明:擦除0x20000~0x3ffff区域命令为erase 20000 3ffff。
按照组和扇区,N表示Flash的组号,SF表示擦除起始扇区号,SL表示擦除结束扇区号。另外,还可以擦除整个组,擦除组号为N的整个Flash组。擦除全部Flash只要给出一个all的参数即可。
8)nand命令
nand命令可以通过不同的参数实现对Nand Flash的擦除、读、写操作。
常见的几种命令的含义如下(具体格式见help nand)。
# help nand
nand - NAND sub-system
Usage:
nand info - show available NAND devices
nand device [dev] - show or set current device
nand read - addr off|partition size
nand write - addr off|partition size
read/write 'size' bytes starting at offset 'off'
to/from memory address 'addr', skipping bad blocks.
nand erase [clean] [off size] - erase 'size' bytes from
offset 'off' (entire device if not specified)
nand bad - show bad blocks
nand dump[.oob] off - dump page
nand scrub - really clean NAND erasing bad blocks (UNSAFE)
nand markbad off [...] - mark bad block(s) at offset (UNSAFE)
nand biterr off - make a bit error at offset (UNSAFE)
● nand erase:擦除Nand Flash。
● nand read:读取Nand Flash,遇到flash坏块时会出错。
● nand write:写Nand Flash,nand write命令遇到flash坏块时会出错。
9)flinfo命令
flinfo命令打印全部Flash组的信息,也可以只打印其中某个组。一般嵌入式系统的Flash只有一个组。
# help flinfo
flinfo - print FLASH memory information
Usage:
flinfo
- print information for all FLASH memory banks
flinfo N
- print information for FLASH memory bank # N
10)go命令
go命令可以执行应用程序。
# help go
go - start application at address 'addr'
Usage:
go addr [arg ...]
- start application at address 'addr'
passing 'arg' as arguments
● 第1个参数addr是要执行程序的入口地址。
● 第2个可选参数是传递给程序的参数,可以不用。
11)iminfo命令
iminfo命令可以打印程序映像的开头信息,包含了映像内容的校验(序列号、头和校验和)。
# help iminfo
iminfo - print header information for application image
Usage:
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)
第1个参数addr指定映像的起始地址。可选的参数是指定更多的映像地址。
12)loadb命令
loadb命令可以通过串口线下载二进制格式文件。
# help loadb
loadb - load binary file over serial line (kermit mode)
Usage:
loadb [ off ] [ baud ]
- load binary file over serial line with offset 'off' and baudrate 'baud'
13)loads命令
loads命令可以通过串口线下载S-Record格式文件。
# help loads
loads - load S-Record file over serial line
Usage:
loads [ off ]
- load S-Record file over serial line with offset 'off'
14)mw命令
mw命令可以按照字节、字、长字写内存,.b、.w、.l的用法与cp命令相同。
# help mw
mw - memory write (fill)
Usage:
mw [.b, .w, .l] address value [count]
● 第1个参数address是要写的内存地址。
● 第2个参数value是要写的值。
● 第3个可选参数count是要写单位值的数目。
15)nfs命令
nfs命令可以使用NFS网络协议通过网络启动映像。
# help nfs
nfs - boot image via network using NFS protocol
Usage:
nfs [loadAddress] [[hostIPaddr:]bootfilename]
16)printenv命令
printenv命令打印环境变量。可以打印全部环境变量,也可以只打印参数中列出的环境变量。
# help printenv
printenv - print environment variables
Usage:
printenv
- print values of all environment variables
printenv name ...
- print value of environment variable 'name'
17)protect命令
protect命令是对Flash写保护的操作,可以使能和解除写保护。
help protect
protect - enable or disable FLASH write protection
Usage:
protect on start end
- protect FLASH from addr 'start' to addr 'end'
protect on start +len
- protect FLASH from addr 'start' to end of sect w/addr 'start'+'len'-1
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 start +len
- make FLASH from addr 'start' to end of sect w/addr 'start'+'len'-1 wrtable
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
● 第1个参数on代表使能写保护;off代表解除写保护。
● 第2和3个参数是指定Flash写保护操作范围,与擦除的方式相同。
18)rarpboot命令
rarpboot命令可以使用TFTP协议通过网络启动映像,也就是把指定的文件下载到指定地址,然后执行。
# help rarpboot
rarpboot - boot image via network using RARP/TFTP protocol
Usage:
rarpboot [loadAddress] [[hostIPaddr:]bootfilename]
● 第1个参数是loadAddress映像文件下载到的内存地址。
● 第2个参数是bootfilename要下载执行的镜像文件。
19)run命令
run命令可以执行环境变量中的命令,后面参数可以跟几个环境变量名。
# help run
run - run commands in an environment variable
Usage:
run var [...]
- run the commands in the environment variable(s) 'var'
20)setenv命令
setenv命令可以设置环境变量。
# help setenv
setenv - set environment variables
Usage:
setenv name value ...
- set environment variable 'name' to 'value ...'
setenv name
- delete environment variable 'name'
● 第1个参数是name环境变量的名称。
● 第2个参数是value要设置的值,如果没有第2个参数,表示删除这个环境变量。
21)sleep命令
sleep命令可以使用TFTP协议通过网络下载文件,按照二进制文件格式下载。另外,使用这个命令,必须配置好相关的环境变量,例如serverip和ipaddr。
help sleep
sleep - delay execution for some time
Usage:
sleep N
- delay execution for N seconds (N is _decimal_ !!!)
sleep命令可以延迟N秒执行,N为十进制数。
22)nm命令
nm命令可以修改内存,可以按照字节、字、长字操作。
# help nm
nm - memory modify (constant address)
Usage:
nm [.b, .w, .l] address
参数address是要读出并且修改的内存地址。
23)tftpboot命令
tftpboot命令可以通过使用TFTP协议在网络上下载二进制格式文件。
tftpboot - boot image via network using TFTP protocol
Usage:
tftpboot [loadAddress] [[hostIPaddr:]bootfilename]
24)saveenv 命令
saveenv命令可以保存环境变量到存储设备。
# help saveenv
saveenv - save environment variables to persistent storage
Usage:
saveenv
这些U-Boot命令为嵌入式系统提供了丰富的开发和调试功能。在Linux内核启动和调试过程中,都可以用到U-Boot的命令。但是一般情况下,不需要使用全部命令。比如已经支持以太网接口,可以通过tftpboot命令来下载文件,那么就没有必要使用串口下载的loadb。反过来,如果开发板需要特殊的调试功能,也可以添加新的命令。
节选《从实践中学嵌入式Linux应用程序开发》
U-Boot命令大全(功能参数及用法)的更多相关文章
- Java 命令行运行参数大全
Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME"bin"java –option 来启动,-option为虚拟 ...
- linux dmesg命令参数及用法详解(linux显示开机信息命令)
linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...
- linux管道命令grep命令参数及用法详解---附使用案例|grep
功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...
- linux mount命令参数及用法详解
linux mount命令参数及用法详解 非原创,主要来自 http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml. htt ...
- 【转】linux expr命令参数及用法详解
在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...
- linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)
linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...
- linux expr命令参数及用法详解
expr用法 expr命令一般用于整数值,但也可用于字符串.一般格式为: #expr argument operator argument expr也是一个手工命令行计数器. #$expr 10 + ...
- (转)linux expr命令参数及用法详解
linux expr命令参数及用法详解 原文:http://blog.csdn.net/tianmohust/article/details/7628694 expr用法 expr命令一般用于整数值, ...
- (转)linux traceroute命令参数及用法详解--linux跟踪路由命令
linux traceroute命令参数及用法详解--linux跟踪路由命令 原文:http://blog.csdn.net/liyuan_669/article/details/25362505 通 ...
随机推荐
- AngularJS 之 Factory、Service、Provider
当你初试 Angular 时,很自然地就会往 controller 和 scope 里堆满不必要的逻辑.一定要早点意识到,controller 这一层应该很薄:也就是说,应用里大部分的业务逻辑和持久化 ...
- foreach与Iterable学习
以前对于foreach的使用都是自然而然的感觉,没有深究过为什么可以用,什么时候可以用.最近才发现,原来那些可以使用的类,都是实现了Iterable接口的,否则根本就不能用. 下面是我之前学习时候写的 ...
- POJ 2299 Ultra-QuickSort 逆序数 树状数组 归并排序 线段树
题目链接:http://poj.org/problem?id=2299 求逆序数的经典题,求逆序数可用树状数组,归并排序,线段树求解,本文给出树状数组,归并排序,线段树的解法. 归并排序: #incl ...
- DevExpress DXperience 的本地化(汉化)方法
Devexpress的.net组件目前非常流行,在国内开发者中有非常高的热度,但是由于是国外控件,我们经常遇到的一个问题是汉化.目前Devexpress公司2011.2版以后使用了统一的本地化模式,针 ...
- C# SMTP邮件发送 分类: C# 2014-07-13 19:10 334人阅读 评论(1) 收藏
邮件发送在网站应用程序中经常会用到,包括您现在看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,做了一个客户端Demo,希望对有需要的童鞋有所帮助: 核心代码: ...
- hdu 4043 2011北京赛区网络赛D 概率+大数 **
推出公式为:P = A(2n,n)/(2^(2n)*n!) 但是不会大数,学完java再补
- sp_executesql的用法
之前做项目的时候负责一个成绩分析的模块儿,写存储过程的时候因为考试的科目是不固定的,所以导致查找成绩的sql语句也是动态的,就用到了sp_executesql,下面就来说一说它的用法 需求:表名是动态 ...
- cocos2dx游戏开发——微信打飞机学习笔记(一)——开发准备
一.环境的搭建 1.Windows开发准备: (1)软件下载及安装 •下载Cocos2d-x 最新版本:http://www.cocos2d-x.org/download 或者从Cocos2d-x G ...
- CentOS配置本地yum源(使用镜像iso文件)
本人在使用yum安装软件的时候,感觉最不爽的是网络不佳时,安装的速度特别慢.所以,个人就上网search了一下如何使用Linux的安装文件作为其yum源.经过几次尝试,已经可以成功的配置了.下面是详细 ...
- hdu1160 LIS变形
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1160 题意:两个子序列 一个是升序,一个是降序,求最长的子序列是多长,并输出路径.(答案不 ...