u-boot源码分分析及移植

u-boot源码分分析及移植

ID:17443048

大小:154.00 KB

页数:40页

时间:2018-08-31

u-boot源码分分析及移植_第1页
u-boot源码分分析及移植_第2页
u-boot源码分分析及移植_第3页
u-boot源码分分析及移植_第4页
u-boot源码分分析及移植_第5页
资源描述:

《u-boot源码分分析及移植》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、U-BOOT源码分析及移植4728577492008-4-298:44:19  收藏 

2、 打印 

3、 投票(458) 

4、 评论(55) 

5、 阅读(1589848) ◇字体:[大 中 小]本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:1、u-boot工程的总体结构2、u-boot的流程、主要的数据结构、内存分配。3、u-boot的重要细节,主要分析流程中各函数的功能。4、基于FS2410板子的u-boot移植。实现了NORFlash和NANDFlash启动,网络功能。 这些认识源于自己移植u-boot过程中查找的资料和对源码的简单阅读。下面主要以smdk2410为分析对象。

6、 一、u-boot工程的总体结构:1、源代码组织 对于ARM而言,主要的目录如下:board                 平台依赖         存放电路板相关的目录文件,每一套板子对应一个目录。如smdk2410(arm920t)                                                                                                                     cpu                   平台依赖          存放CPU相关的目录文件,每一款CPU对应一个目录,

7、例如:arm920t、xscale、i386等目录lib_arm               平台依赖           存放对ARM体系结构通用的文件,主要用于实现ARM平台通用的函数,如软件浮点。common              通用          通用的多功能函数实现,如环境,命令,控制台相关的函数实现。include               通用               头文件和开发板配置文件,所有开发板的配置文件都在configs目录下                                       lib_generic         通用  

8、          通用库函数的实现net                   通用               存放网络协议的程序drivers              通用              通用的设备驱动程序,主要有以太网接口的驱动,nand驱动。.......2.makefile简要分析所有这些目录的编译连接都是由顶层目录的makefile来确定的。在执行make之前,先要执行make$(board)_config对工程进行配置,以确定特定于目标板的各个子目录和头文件。$(board)_config:是makefile中的一个伪目标,它传入指定的CPU,ARCH,BOAR

9、D,SOC参数去执行mkconfig脚本。这个脚本的主要功能在于连接目标板平台相关的头文件夹,生成config.h文件包含板子的配置头文件。使得makefile能根据目标板的这些参数去编译正确的平台相关的子目录。以smdk2410板为例,执行 makesmdk2410_config,主要完成三个功能:@在include文件夹下建立相应的文件(夹)软连接,#如果是ARM体系将执行以下操作:#ln-s    asm-arm       asm  #ln-s arch-s3c24x0   asm-arm/arch#ln-s  proc-armv      asm-arm/proc@生成Makef

10、ile包含文件include/config.mk,内容很简单,定义了四个变量:ARCH  =armCPU   =arm920tBOARD =smdk2410SOC   =s3c24x0@生成include/config.h头文件,只有一行:/*Automaticallygenerated-donotedit*/#include"config/smdk2410.h"顶层makefile先调用各子目录的makefile,生成目标文件或者目标文件库。然后再连接所有目标文件(库)生成最终的u-boot.bin。连接的主要目标(库)如下:OBJS =cpu/$(CPU)/start.oLIBS =l

11、ib_generic/libgeneric.aLIBS+=board/$(BOARDDIR)/lib$(BOARD).aLIBS+=cpu/$(CPU)/lib$(CPU).aifdefSOCLIBS+=cpu/$(CPU)/$(SOC)/lib$(SOC).aendifLIBS+=lib_$(ARCH)/lib$(ARCH).aLIBS+=fs/cramfs/libcramfs.afs/fat/libfat.afs/f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。