U-BOOT是当前比较流行、功能强大的BootLoader,可以支持多种体系结构,具有下载,引导程序的功能,还
可以支持串口下载和网口下载.现在把一些命令总结一下,免得以后忘记了还可以查阅,本来早想写一篇关
于u-boot总结的了,今天网友板砖问了一下这方面的问题,所以就写一下关于这方面的东西。
1.u-boot引导程序:
进入u-boot,输入命令print,查看bootcmd的参数,接着tftp *.bin文件到sdram中,现在我tftp一个ucos的led测试文件
ht_ucos.bin 到0x0c008000,命令如下:
set bootfile ht_ucos.bin
save
tftp
接着要擦除flash的地址0x50000-0x1fffff,我的flash的地址分配如下:
u-boot代码区: 0x0-0x3ffff
u-boot的参数区:0x40000-0x4ffff
用户程序区: 0x50000-0x1fffff
为了保证不出错,先擦除flash:
er 0x50000-0x1fffff
接着把ht_ucos的程序从sdram拷贝到flash的地址0x50000
cp 0x0c008000 0x50000 hex长度 (hex的长度计算如下:hex/4+2)
hex的长度是4878(十六进制)/4+2=1220
接着是设置bootcmd这个参数了:
set bootcmd cp 0x50000 0x0c008000 1220\;go 0x0c008000
save
接着重启一下板子,可以看到在基于ucos操作系统下的流水灯,是使用u-boot引导的.
2.使用u-boot烧写uclinux到flash中
使用u-boot可以用来烧写程序,支持串口下载和网口下载,我一般是用tftp网口下载的,速度很快,使用串口老
是出问题,而且速度超慢.
烧写的步骤跟上边的差不多,只是要设置bootcmd的参数
set bootcmd bootm 0x50000
save
为什么是bootm 0x50000呢,我查到相关文档是这样解释的:下载的uclinux_rom.bin这个文件是压缩格式的,所
以需要使用bootm解压运行.bootm是首先在地址0x50000解压uclinux_rom.bin文件,然后运行的.
补充:如果只是把uclinux_rom.bin文件下载到sdram中的话,那么输入命令:
bootm 0x0c008000
也可以进入uclinux的界面,不过掉电之后再上电就不能再次运行了.
3.u-boot的网络地址的设置问题
设置主机IP地址:set serverip 192.168.1.111
设置板子IP地址:set ipadder 192.168.1.30
注意两者的网段要相同.
如果是set serverip 192.168.1.111
set ipadder 192.168.0.30
那可就不行了,上次因为没搞清楚这个,不同网段的话靠交换机或者是交叉网线线连接主机跟目标板是不能
通信的,害我搞了1个小时才发现问题.下次不能犯这种错误了.
还有就是板子如果没有u-boot的话,板子不能插上网线,插了网线会导致宿舍的交换机出现问题,连在交换机
的机子不能上网.
4.关于使用串口下载
串口下载挺慢,所以我不推荐使用这种方法.我一开始就是使用串口来下载,不过我的机子好像不能使用这
种方法来下载程序,下载小的文件还行,要是下载大点的文件就老是中途出错,可能我的串口有点问题,当初
因为这个搞得我差点失去学习ARM的信心,还好找到使用网络下载的办法.不过在这里也介绍一下吧:
loadb 0x0c008000
然后在超级终端上使用keimit协议下载选择文件
go 0x0c008000
文章评论(0条评论)
登录后参与讨论