分享

u-boot编译及源码分析

 langhuayipian 2011-02-24
u-boot源码结构:版本2010.12
目    录                特    性                解 释 说 明
board                  平台依赖          存放电路板相关的目录文件,
                                        例如:RPXlite(mpc8xx)、
                                        smdk2410(arm920t)、
                                        sc520_cdp(x86) 等目录
arch                 平台依赖
                        有arm  avr32  blackfin  i386  m68k  microblaze  mips  nios2  powerpc  sh  sparc
                         目录存放各类CPU相关的目录文件
                                        例如:arm/cpu/arm720t
                                                 powerpc/cpu/mpc5xx/   mpc5xxx/                         
                                      
lib_ppc                平台依赖          存放对PowerPC体系结构通用的文件,
                                        主要用于实现PowerPC平台通用的函数

lib_arm                平台依赖           存放对ARM体系结构通用的文件,
                                         主要用于实现ARM平台通用的函数

lib_i386               平台依赖           存放对X86体系结构通用的文件,
                                         主要用于实现X86平台通用的函数

include                通用                头文件和开发板配置文件,
                                          所有开发板的配置文件都在configs目录下

common               通用                通用的多功能函数实现
lib_generic            通用                通用库函数的实现
net                     通用                存放网络的程序
fs                      通用                存放文件系统的程序
post                    通用                存放上电自检程序
drivers                 通用                通用的设备驱动程序,主要有以太网接口的驱动
disk                    通用                硬盘接口程序
rtc                     通用                RTC的驱动程序
dtt                     通用                数字温度测量器或者传感器的驱动
examples               应用例程             一些独立运行的应用程序的例子,例如helloworld
tools                   工具                存放制作S-Record或者u-boot格式的映像等工具,
                                          例如mkimage

doc                     文档                开发使用文档

    u-boot的源代码包含对几十种处理器、数百种开发板的支持。可是对于特定的开发板,配置编译过程只需要其中部分程序。这里具体以powerpc为例,具体分析mpc85xx系列处理器和开发板所依赖的程序,以及u-boot的通用函数和工具。

编译:
编译分为两部分
./mkcomfig
make
在mkconfig 文件开头给出了$1-$6的用法:Board [VENDOR] [SOC]

1、 $1 开发板名字 $2 arch $3 cpu name $4 board $5vendor $6soc

./mkconfig QORIQ_RDB powerpc mpc85xx QORIQ_RDB null QORIQ_RDB
与开发板里执行make smdk2410_config 等效
2、对./mkconfig 主要做了三件事
1、
在include文件夹下建立相应的文件(夹)软连接,
 asm -> ../arch/powerpc/include/asm
#ln -s     asm-$2        asm  

#ln -s  arch-$6    asm-arm/arch
#ln -s   proc-armv       asm-arm/proc(注意: 只有arm 才有这行)



2、
生成Makefile包含文件include/config.mk,内容很简单,定义了四个变量:
 1 ARCH   = powerpc
  2 CPU    = mpc85xx
  3 BOARD  = QORIQ_RDB
  4 VENDOR = null
  5 SOC    = QORIQ_RDB
3、生成include/config.h头文件
/* Automatically generated - do not edit */
  2 #define CONFIG_BOARDDIR board/null/QORIQ_RDB
  3 #include <config_defaults.h>
  4 #include <configs/QORIQ_RDB.h>
  5 #include <asm/config.h>


make

s




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多