1,解压uboot文件,我学习用的是tiny6410的开发板,所以解压uboot_tiny6410.tar.gz,进入uboot_tiny6410目录。
tar xvzf uboot_tiny6410.tar.gz
cd uboot_tiny6410
2,配置并编译
make tiny6410_config
make ARCH=arm CROSS_COMPILE=arm-linux-
3,使用dnw下载uboot.bin
4,下载完成后,将开发板从nand flash启动,并迅速按任意键,进入uboot命令行模式。
查看当前开发板运行的uboot所支持的命令
(1)printenv(print)
查看环境变量
(2)setenv(set)
修改环境变量
setenv name value
setenv name
(3) saveenv(save)
保存环境变量,将当前定义的所有变量及其值存入flash中。
使用tftp通过网络下载文件,需要配置好网络。
//(1)设置开发板mac地址
setenv ethaddr 12:34:56:78:9A:BC
//(2)设置开发板ip地址,须和主机(tftp服务器)在同一个网段
setenv ipaddr 192.168.3.115
//(3)设置主机(tftp服务器)ip地址
setenv serverip 192.168.3.111
//(4)在开发板上ping主机(tftp服务器)
ping 192.168.3.111
//如果Ping不通,关闭windows和linux的防火墙
//(5)把主机(tftp服务器)上的内核文件下载到开发板
tftp 0xc0008000 uImage
//(6)启动linux内核
bootm 0xc0008000
//bootm执行固定格式的二进制文件。固定格式指的是在内核文件开头有固定格式的信息(如cpu信息).
(1)查看内存内容-md
格式:md[.l/.w/.b] address
采用十六进制和ASCII码两种形式来显示存储单元的内容。这条命令还可以采用长度标识符.l(双字),.w(字),.b(字节)。
(2)修改内存内容-mm
格式:mm[.b/.w/.l] address
修改内存,地址自动递增。mm提供了一种互动修改存储器内容的方法。它会显示地址和当前值,然后提示用户输入。如果你输入了一个合法的十六进制数,这个新的值将会被写入到该地址。然后提示下一个地址。如果你没有输入任何值,只是按下了回车,那么该地址的内容保持不变。如果想结束输入,则输入空格,然后回车。
(1)擦除nand flash
nand erase [addr] [len]
擦除addr处开始的,长度为len的区域。
(2)读/写nand flash
nand write [mem_addr] [flash_addr] [len]
将mem_addr地址处,长度为len的数据,写入flash_addr地址处。
nand read [mem_addr] [flash_addr] [len]
将flash_addr地址处,长度为len的数据,读到mem_addr地址处。
(1)设置从nand flash自动启动
tftp c0008000 uImage
nand write c0008000 4000000 5000000
setenv bootcmd nand read c0008000 4000000 5000000 \;bootm c0008000
#saveenv
(2)设置自动下载内核到内存后自动启动
setenv tftp c0008000 uImage \;bootm c0008000
saveenv