个人强烈建议看着命令自己做做~~
首先是你的开发板上烧写好了U-Boot。
1、引导启动相关命令
1)go
格式:
go addr [arg ...]
功能:
go命令可以执行应用程序(这里一定要区分与bootm的区别!!)
△:第一个参数是要执行程序的入口地址。
△:第二个是可选参数,是传递给程序的参数。
2)bootm
格式:
bootm [addr[arg ...]]
功能:
bootm命令可以引导启动存储在内存中的程序映像。这些内存包括RAM和可以永久保存的Flash。
△:参数addr是程序映像的地址,这个程序映像必须转换成U-Boot的形式(这就是与go的不同!)
△:第二个参数对于引导Linux的内核有用,通常作为U-Boot格式的RAMDISK映像存储地址;也可以是传递给Linux内核的参数(缺省情况下传递boottargs环境变量给内核)。
附加说明:启动映像需要经过mkimage处理。
3)bootp
格式:
bootp [LoadAddress] [BootFilename]
功能:
bootp命令通过bootp请求,要求DHCP服务器分配IP地址,然后通过TFTP协议下载指定的文件到内存。
△:第一个参数是下载文件存放的内存地址。
△:第二个参数是要下载的文件名称,这个文件应该在开发主机上准备好。
附加说明:通过网络启动,需要提前设置网络,bdinfo打印ARM相关信息。
4)tftpboot
格式:
tftpboot [LoadAddress] [BootFilename]
功能:
tftpboot命令可以使用TFTP协议通过网络启动映像。按照二进制文件格式下载。
另外使用这个命令,必须配置好相关的环境变量,比如:serverip和ipaddr~~
还有就是虚拟机的TFTP一定要启动~~我猜这个应该是废话~~
△:第一个参数是下载到的内存地址
△:第二个参数是要下载的文件名称。它必须放在TFTP服务器响应的目录下(我的是/tftpboot)
附加说明:tftp命令和tftpboot一样~~
5)nfs(感觉跟TFTP一样,但是暂时不用呢~~)
格式:
nfs [LoadAddress] [host ip addr:BootFilename]
功能:
nfs命令可以使用NFS网络协议通过网络下载文件。
例如:
nfs 32000000 192.168.1.111:aa.txt,可以把192.168.1.111(Linux的NFS文件系统)中的aa.txt读入内存0x32000000中。
2、环境变量相关命令
1)echo
格式:
echo [args ...]
功能:
echo命令回显参数。用法跟Linux下的一样~~
2)printenv
格式:
printenv
或者printenv name ...
功能:
printenv命令打印环境变量。可以打印全部的环境变量,也可以打印部分的环境变量。
3)setenv
格式:
setenv name value ...
setenv name
功能:
setenv命令可以设置环境变量。
△:第一个参数是环境变量的名称。
△:第二个参数是要设置的值,如果没有第二个参数,表示删除这个环境变量。
4)saveenv(更改了环境变量,如果下回还要用就要save一下)
格式:
saveenv
功能:
保存环境变量,命令将当前定义的所有的变量及其值存入Flash中。
5)run
格式:
run var [...]
功能:
run命令可以执行环境变量中的命令,后边参数可以跟几个环境变量名。
例如:
6410 # setenv fldnw tftp 0x00000000 my.bin \; earse 0 3ffff \; cp.b 30000000 0 40000
6410 # run flashit
6)ping
格式:
ping IPAddr
功能:
只能开发板ping主机。
3、内存操作命令
1)cmp
格式:
cmp[.b,w,l] Addr1,Addr2 Count
功能:
cmp命令可以比较2块内存中的内容。
.b是以字节为单位;依次类推.w和.l(千万注意这里没有空格!)
△:第一个参数是一块内存的起始地址
△:第二个参数是另一块内存的起始地址
△:第三个参数Count是要比较的数目。
2)cp
格式:
cp[.b,w,l] Source Target Count
功能:
cp命令可以在内存中复制数据块,包括对Flash的读写操作。
△:第一个参数是要复制的数据块起始地址。
△:第二个是要复制到的起始地址。这个地址如果在Flash中,那么会直接调用写Flash的函数操作。所以UBoot写Flash就是用这个命令,当然需要先把对应Flash区域擦除。
△:第三个参数是要复制的数目。
3)mw
格式:
mw[.b,w,l] Addr Value [Count]
功能:
mw命令可以按照字节、字、长字写内存。
△:第一个参数Addr是要写的内存地址
△:第二个参数是要写的值
△:第三个参数是要写单位制的数目
例程:
mw 0x32000000 ff 1000(把内存0x32000000开始的0x10000字节设为0xff)
4)nm
格式:
nm[.b,w,l] Addr
功能:
nm命令可以修改内存,可以按照字节、字、长字操作(其实在Linux系统应该是字节、半字、字!)
△:参数Addr是要读出并且修改的内存地址。
5)mm
格式:
mm Addr
功能:
读或者修改内存,地址自动增加。
△:直接按回车,保持原内容不变。
△:若要改变,在问号后面输入数值然后回车
△:按空格回车退出。
6)md
格式:
md[.b,w,l] Addr
功能:
md命令可以显示内存区的内容,可以按照字节、字、长字操作
4、Nor Flash
由于Tiny6410的板子上没有这个东西,所以我就不打算写了~~
5、Nand Flash
1)info
格式:
nand info
功能:
打印出可用的nand设备。
2)device
格式:
nand device [dev]
功能:
打印或设置当前nand设备
3)read
格式:
nand read[.jffs2] Addr Off或者Partition Size
功能:
从Nand Flash的Off地址(或者Partition分区)读Size大小的数据到内存地址Addr处。
写的方法可以是普通写,或者按照jffs2文件系统格式来写。
4)write
格式:
nand write[.jffs2]/[.yaffs[1/2]] Addr Off/Partition Size
功能:
将内存中的Addr地址Size大小的的数据写到NandFlash地址Off处(或者Partition分区)。
写的方式可以是普通鞋或者按照yffs2、yaffs1、yaffs2文件系统格式来写。
5)bad
格式:
nand bad
功能:
根据坏块表,显示NandFlash坏块地址。
6)dump
格式:
nand dump[.oob] Off
功能:
将一页的内容打印出来。
7)erase