原创 关于u-boot

2007-7-1 16:22 4715 11 11 分类: MCU/ 嵌入式







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)


 


1be8cbbc-ab8d-48c4-a347-9db549412672.jpg


 


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条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条