全部博文(46)
分类: 嵌入式
2010-05-02 16:48:49
U-boot是一种比较通用的bootloader
通常启动过程分为两个阶段:
一、 汇编代码。完成寄存器和内部ram的初始化,可以在u-boot/cpu/arm920tstart.S 文件中查看其初始化过程。
二、 C语言代码。完成的是设备的初始化工作。可以在lib-arm/board。C文件中查看其初始化过程。
具休的过程如下:
1、 将u-boot的软件包解压。(一般建到/home下)建立自己的开发板类型(mini2440)如果不建立自己的开发板也可以用uboot自带的smdk2440来建立适合自己的bootloader。
2、 进入u-boot顶层目录,查看顶层的makefile。
#cd u-boot
#vi makefile
//下面是makefile中的存在的,是三星公司的smdk2410开发板的配置。
smdk2410_config :unconfig
@$(MKCONFIG)$(@:_config=)arm arm920t smdk2410 UNLL s
上面的各项意思如下:
arm :cpu的架构(ARCH)
arm920t:cpu的类型,对应于cpu/arm920t子目录
smdk2410开发板的型号(自己建立的)对应于board/huangu/mimi2440目录下
NULL: 开发商
s
Unconfig依赖文件所做的工作有那些呢?可以找到这一项
unconfig :@rm –f include/config.h include/config.mk
board/*/config.tmp 删除了以上文件。
@$(MKCONFIG)$(@:_config=)arm arm920t smdk2410 UNLL s
Mkconfig是脚本文件,传入的参数有$1到$6共六个,这个六个参数用于下一级的的makefile参数。
3、 配置开发板
#make smdk2410_config
#make CROSS_COMPILE=arm-linux-
//在上面的一步中,arm-linux-是自己建立的交叉编译工具,在里使用的时候要//带上绝对路径,或都是修改环境变量。
//编程完成后,会生成一个u-boot.bin 文件,在u-boot目录下。这就是可以烧//写到nor flash内的bootloader了。一般使用的工具是H-Jtag,DNW.
u-boot下载到了开发板后,上电开发板在串口工具里会显示少量的u-boot的信息
help命令可以查看u-boot支持的命令,以及功能.
tftp命令可以下载内核镜像 和文件系统(在xp 上要开启tftp服务)
例如:
Tftp 30008000 zImage
Tftp 30800000 ramdisk.image.gz
Printenv 查看环境变量。
Setenv ipaddr 192.168.1.11 设置开发板的ip地址,这样设置后并没有写进flash中,而只存于ram 中,下次掉电以后,仍然恢复以前的设置。使用saveenv命令可以把新的设置写入flash 中.