2010年(49)
分类: 嵌入式
2010-09-07 14:35:01
1 tftpboot
tftpboot命令用于从tftp server下载文件到本地的内存中。
tftpboot会使用到serverip这个环境变量,它代表了tftp server的主机ip地址
tftpboot 0x200000 pImage
当然,可以不写需要下载的img名称,通过bootfile这个环境变量去下载img。
2 nfs
nfs命令用于从nfs server上下载文件到本地的内存中。
nfs 0x200000 192.168.2.216:/tftpboot/pImage
和tftpboot命令一样,路径及文件名参数可以不写,默认使用bootfile环境变量。不过注意bootfile环境变量最好把路径写清楚。
另外,u-boot支持启动linux内核后,加载nfs文件系统做为根文件系统。
3 bootm 和 go
bootm命令和go都可以转移pc指针,但是二者有区别。
bootm 只能引导uimage镜像。而镜像的起始部分一般都是一些信息,而真正的指令起始的地方一般都和镜像的起始部分有一定的offset。例如uboot支持的uimgae就是在真正的vmlinuxz内核的前面加上了0x40字节的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么。
Bootm 200000 //200000只是镜像的起始地址
Go命令就是从它指定的地址开始执行指令。
Go 200040 //200040是指令的起始地址
但是此时200040并不一定是image的链接地址,执行还是有错误。
4 boot
Uboot当计时结束时,就会执行boot命令,boot命令会按照bootcmd这个环境变量的值去引导。典型的bootcmd环境变量如下:
bootcmd run ramargs;bootm 2870000
bootcmd由两条指令组成:
1)run ramargs,表示运行ramargs环境变量定义的命令。ramargs典型值如下:
ramargs=setenv bootargs root=/dev/ram rw ip=192.168.0.2:255.255.255.0 quiet
ramargs是在设定bootargs环境变量,而bootargs将会作为linux的运行参数。它里面设定了linux的根文件系统、ip等等信息。
2)bootm 2870000
从2870000处的uImage开始引导
5 cp
cp.b 按字节节拷贝
cp.w 按字拷贝
cp.l 按双字拷贝