1、编译uboot
1.1(OK6410开发板)执行命令
make forlinx_nand_ram256_config
以下为各个开发板编译uboot的对应命令
TQ210: make TQ210_config
Smart210: make smart210_config
OK210: make forlinx_linux_config
OK6410: make
forlinx_nand_ram256_config
Tiny6410: make tiny6410_config
TQ2440: make TQ2440_config
Mini2440: make mini2440_config
1.2 在uboot源目录下执行以下命令
make ARCH=arm CROSS_COMPILE=arm-linux-
之后出现uboot.bin文件
1.3烧写uboot并设置开发板nandflash启动。。按下q键进入uboot菜单
以下为uboot 菜单
2、uboot命令详解
1>查看环境变量:printenv;print-->查看所有环境变量
2>修改(添加、修改、删除)环境变量:setenv
2.2.1>添加setenv
filename new.txt
2.2.2>修改setenv
new.txt new1.txt
2.2.3>删除setenv
new1.txt
2.2.4>保存环境变量saveenv,将定义的变量保存到nandflash中,掉电不丢失,
3、文件下载(使用TFTP)
ping通后(ping 的为Linux的IP)
下载格式:
tftp 地址 文件
例:tftp 0x50008000 uImage
以下为wireshark抓包数据(tftp传输过程中)
4、执行程序
bootm {addr} {arg}
执行固定格式的2进制程序;
对固定格式的解释:比如说uImage镜像,比较zImage镜像有一个固定的头。
头的信息包括此镜像文件是什么类型的---Linux、windows?
有没有使用幻数?压缩类型?
5、操作内存区
5.1显示内存区的内容
md采用十六进制和ASCII码两种形式来显示存储单元的内容,还可以使用长度标示符【.b .l
.w 】
5.2修改内存----mm,后缀同样可使用【.b
.l .w 】
mm 提供了一种互动修改存储器内 容的方法。 它会显示地址和当前值, 然后提示用 户输入。 如果你输入了一个合法的十六进制数, 这个新的值将会被写入该地址。
然后提示下一个地址。 如果你没有输入任何值, 只是按了一下回车, 那么 该地址的内 容保持不变。
如果想结束输入, 则输入空格, 然后回车。
6、nandflash操作
6.1擦除nandflash
nand erase 起始地址start 长度len
擦除start处开始,长度为len的区域,
nand erase 0x400000 0x500000
6.2写入nandflash
nand write 内存起始地址 Flash起始地址 长度len
将内存起始地址处,长度为len的数据,写入Flash起始地址处
例:
nand write c0008000 400000 500000
6.3读取nandflash
nand read 读取的内存的起始地址 , Flash起始地址 长度len
将Flash起始地组织处,长度为len的数据,读到内存起始地址处
例:
nand read c0008000 400000 500000
7、设置从nandf读取内核自启动
setenv bootcmd nand read c0008000 400000 500000 \; bootm c0008000
设置自动下载内核到内存后启动
setenv tftp c0008000 uImage \; bootm c0008000
注:
使用tftp服务器下载内核到开发板的说明。
1、启动tftp服务器:
2、tftp服务器在Linux下,则必须关闭虚拟机中Linux的防火墙,同时关闭windows的防火墙。。
3、设置开发板IP 、PC 、PC中Linux在一个网段
4.windows和linux桥接
5.用路由器讲开发板和PC连接起来
6.关闭linux的selinux
在没有外网的情况下:
(开发板与PC也可直接连接,虚拟机的网络连接方式还是桥接,也可以使用tftp服务器 和nfs服务器。需注意PC、虚拟机、开发板仍需在一个网段。)
uboot入门 | 使用 | 学习
原文:http://blog.csdn.net/u011467781/article/details/43530857