烧灼的虚空碎片:u-boot编译及源码分析
来源:百度文库 编辑:偶看新闻 时间:2024/05/05 17:38:38
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
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
4 #include
5 #include
make
s
目 录 特 性 解 释 说 明
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
4 #include
5 #include
make
s
C源码编译问题
灰鸽子源码分析
编译原理词法分析程序
asp网络U盘源码
VC的安装及编译
ace 安装及编译问题
句子分析及分析!
c++简单大富翁游戏源码编译过程中的小问题
U盘中拉病毒 virtue.boot.chan
Linux内核编译,步骤及截图.
5句子分析及分析!
5句子分析及分析!
哪有注册表复原软件及源码?
分析及翻译
酒店价目表及分析
法律案例及分析
市场营销案例及分析
分析及确定化学式
哪里有c++加密的源码,最好是可以用 g++编译的
像firefox这种开源软件源码用什么软件来编译啊?
谁有《编译原理》中语义分析的代码?
源码!!
u-boot中关于字节对准的问题
关于u-boot中字节对准的问题