预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共15页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

u-boot的移植1.1u-boot介绍Uboot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序,UBoot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD,VxWorks,QNX,RTEMS,ARTOS,LynxOS嵌入式操作系统。UBoot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。本文的代码取自于uboot1.1.4。1.2获取u-boot从下面地址下载uboot的源代码。http://sourceforge.net/projects/uboot[uboot@localhostuboot]#tarxjvfuboot1.1.4.tar.bz2[uboot@localhostuboot]#cduboot1.1.41.3u-boot体系结构1.目录树.|board|common|cpu|disk|doc|drivers|dtt|examples|fs|include|lib_arm|lib_generic|lib_i386|lib_m68k|lib_microblaze|lib_mips|lib_nios|lib_nios2|lib_ppc|net|post|rtc`tools2.board:和一些已有开发板有关的文件.每一个开发板都以一个子目录出现在当前目录中,比如说:SMDK2410,子目录中存放与开发板相关的配置文件.3.common:实现uboot命令行下支持的命令,每一条命令都对应一个文件。例如bootm命令对应就是cmd_bootm.c。4.cpu:与特定CPU架构相关目录,每一款Uboot下支持的CPU在该目录下对应一个子目录,比如有子目录arm920t等。5.disk:对磁盘的支持。5.doc:文档目录。Uboot有非常完善的文档,推荐大家参考阅读。6.drivers:Uboot支持的设备驱动程序都放在该目录,比如各种网卡、支持CFI的Flash、串口和USB等。7.fs:支持的文件系统,Uboot现在支持cramfs、fat、fdos、jffs2和registerfs。8.include:Uboot使用的头文件,还有对各种硬件平台支持的汇编文件,系统的配置文件和对文件系统支持的文件。该目录下configs目录有与开发板相关的配置头文件,如smdk2410.h。该目录下的asm目录有与CPU体系结构相关的头文件,asm对应的是asmarm.9.lib_xxxx:与体系结构相关的库文件。如与ARM相关的库放在lib_arm中。10.net:与网络协议栈相关的代码,BOOTP协议、TFTP协议、RARP协议和NFS文件系统的实现。11.tools:生成Uboot的工具,如:mkimage,crc等等。1.4u-boot编译及配置1.4.1u-boot的Makefile分析u-boot的Makefile从功能上可以分成两个部分。一部分是用来编译生成uboot.bin文件;另一部分是用来执行每种board相关的配置。下面以smdk2410为例来说明作了哪些配置。$makesmdk2410_config在shell执行以上命令,对应于Makefile执行的命令是smdk2410_config:unconfig@./mkconfig$(@:_config=)armarm920tsmdk2410NULLs3c24x0首先执行如下命令,删除文件include/config.hinclude/config.mkboard/*/config.tmp,后续会发现这些文件是如何建立的。unconfig:@rm-finclude/config.hinclude/config.mkboard/*/config.tmp然后运行命令@./mkconfig$(@:_config=)armarm920tsmdk2410NULLs3c24x0,mkconfig是脚本文件,传入的参数$1至$6分别为:smdk2410armarm920tsmdk2410NULLs3c24x0,根据传入的参数执行如下命令cd./includerm–fasmln–sasm-armasmrm–fasm-arm/archln–sarch-s3c24x0asm-arm/archrm–fasm-arm/procln–sproc-armvasm-arm/proc生成文件config.mk,文件内容为:ARCH=armCPU=arm920tBOARD=smdk2410SOC=s3c24x0生成文件config.h,文件内容为:/*Automaticallygenerated-donotedit*/#include<configs/smdk2410.h>至此makesmdk