日志档案

发表于 2007-7-1 16:22:01

3

标签: S3C44B0  boot  bootloader  arm  

关于u-boot


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   


系统分类: ARM   |   用户分类: bootloader   |   来源: 原创   |   【推荐给朋友】

    阅读(1146)    回复(0)  

投一票您将和博主都有获奖机会!