Uboot的学习主要是uboot的一些命令的学习,难度不大,下面逐一介绍。
1、help
查看uboot中的命令及其用法
2、printenv/print 查看环境变量
环境变量是保存的系统配置的信息
3、setenv 添加、修改、删除环境变量
用法:setenv 环境变量 值 (添加、修改)
例:setenv filename print.txt。即将环境变量filename值设为print.txt
用法:setenv 环境变量 (删除)
例:setenv filename。即删除环境变量。
4、saveenv 保存环境变量
第3点中所说的修改环境变量是在内存中进行的,一旦掉电后内存被刷新,所做的修改就不存在了,所以用saveenv将对环境变量保存到硬盘—— Flash中。
5、tftp文件下载
这个可以说是这一节中最难的一点。倒不是说tftp下载难,而是开发板和linux虚拟机之间建立网络连接难。要用开发板ping通linux,需要做到以下几点。
(1)、开发板的ip和linux的ip要在同一网段,即ip前三个数字相同。
(2)、笔记本和开发板连接在同一个路由器上。
(3)、windows系统和linux系统的连接方式采用桥接。
(4)、windows和linux的防火墙都关闭。
嗯注意以上几点开发板应该和linux就可以ping通了。(这个折腾了我好久!)
用法:tftp 下载地址 文件名
例: tftp 31000000 uImage
6、查看内存内容
用法:md 地址
用法:md.b 地址(以单字节查看)
7、修改内存内容
用法:mm 地址
退出修改:空格+回车
8、擦除nand flash
用法:nand erase 擦除地址 擦除长度
例:nand erase 0x400000 0x500000
9、读/写nand flash
用法:nand writre/read 内存起始地址 flash起始地址 长度
例:nand write/read 0x31000000 0x500000 0x600000
可以将tftp下载至内存中的内核文件写到nand中保存起来,下次上电只需从nand中读出并启动就好了。
10、启动内核
用法:bootm 内存地址
例:bootm 31000000
11、设置自动启动
一个完整的嵌入式项目应该是不需要人为去做一些读取内核,启动内核的工作的,我们可以设置自动启动。将bootcmd这个环境变量做些修改即可。
setenv nand read 31000000 400000 500000 ; bootm 31000000
“;”用于分开两条不同的命令,前后都需要空格间隔。
saveenv;
这一节比较简单,难点就是开发板和linux之间的网络连接,不过其实也还好了。Go on study!