jz2440:  

韦东山Linux视频第1期_裸板_UBoot_文件系统_驱动初步\第09课第2节 u-boot分析之Makefile结构分析.WMV

《嵌入式linux完全开发手册》 15.2 U-Boot 分析与移植

1. uboot make编译过程:

cd u-boot-1.1.

patch -p1 < ../u-boot-1.1.6_jz2440.patch

make 100ask24x0_config

make all

2. 分析make 100ask24x0_config

aaarticlea/png;base64,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" alt="" />

{
Makefile
mkconfig
include/asm
include/asm/arch
include/asm/proc
include/config.mk
include/config.h
include/configs/100ask24x0.h
} vi Makefile

100ask24x0_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t 100ask24x0 NULL s3c24x0 }
--> mkconfig 100ask24x0 arm arm920t 100ask24x0 NULL s3c24x0 vi mkconfig
{
# Parameters: Target Architecture CPU Board [VENDOR] [SOC]
确定开发板名称:

[ "${BOARD_NAME}" ] || BOARD_NAME="$1"

创建到平台/开发板相关的头文件的链接

cd ./include
rm -f asm
ln -s asm-$ asm rm -f asm-$/arch
ln -s ${LNPREFIX}arch-$ asm-$/arch rm -f asm-$/proc
ln -s ${LNPREFIX}proc-armv asm-$/proc

为Make创建包含文件include/config.mk

echo "ARCH = $2" > config.mk
echo "CPU = $3" >> config.mk
echo "BOARD = $4" >> config.mk
[ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk
[ "$6" ] && [ "$6" != "NULL" ] && echo "SOC = $6" >> config.mk

创建开发板相关的头文件include/config.h

echo "#include <configs/$1.h>" >>config.h

} . uboot的配置文件: include/configs/100ask24x0.h
修改这个配置文件来达到裁剪和设置uboot,类似于kernel的make menuconfig的效果。 主要有3类宏:
CONFIG_ 主要用来设置功能、使用文件中的哪一块这样的参数; CFG_ 主要用来设置一些更细节的参数; 另外还有些其他的定义。
原则上是这样的,实际上主要还是看代码。 {
#define CONFIG_ARM920T 1 /* This is an ARM920T Core */
#define USE_920T_MMU 1
#define MTDIDS_DEFAULT "nand0=nandflash0"
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader)," \
"128k(params)," \
"2m(kernel)," \
"-(root)" #define CFG_MEMTEST_START 0x30000000 /* memtest works on */
#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */
} . 分析make all
vi Makefile
{
# load ARCH, BOARD, and CPU configuration
include $(OBJTREE)/include/config.mk
export ARCH CPU BOARD VENDOR SOC ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-linux-
endif # load other configuration
include $(TOPDIR)/config.mk #########################################################################
# U-Boot objects....order is important (i.e. start must be first) OBJS = cpu/$(CPU)/start.o //cpu/arm920t/start.o是第一个obj文件,先后顺序很重要 LIBS += lib_$(ARCH)/lib$(ARCH).a
LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \
fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a
LIBS += net/libnet.a
LIBS += disk/libdisk.a
LIBS += rtc/librtc.a
LIBS += dtt/libdtt.a
LIBS += drivers/libdrivers.a
LIBS += drivers/nand/libnand.a
LIBS += drivers/nand_legacy/libnand_legacy.a
LIBS += drivers/usb/libusb.a
LIBS += drivers/sk98lin/libsk98lin.a
LIBS += common/libcommon.a ALL = $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map $(U_BOOT_NAND) all: $(ALL) $(obj)u-boot.hex: $(obj)u-boot
$(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ $(obj)u-boot.srec: $(obj)u-boot
$(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ $(obj)u-boot.bin: $(obj)u-boot
$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ $(obj)u-boot.img: $(obj)u-boot.bin
./tools/mkimage -A $(ARCH) -T firmware -C none \
-a $(TEXT_BASE) -e \
-n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' $(VERSION_FILE) | \
sed -e 's/"[ ]*$$/ for $(BOARD) board"/') \
-d $< $@ $(obj)u-boot.dis: $(obj)u-boot
$(OBJDUMP) -d $< > $@ $(obj)u-boot: depend version $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT)
UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
-Map u-boot.map -o u-boot $(OBJS):
echo $(OBJS)
$(MAKE) -C cpu/$(CPU) $(if $(REMOTE_BUILD),$@,$(notdir $@)) $(LIBS):
$(MAKE) -C $(dir $(subst $(obj),,$@)) $(SUBDIRS):
$(MAKE) -C $@ all
} 分析 “ include $(TOPDIR)/config.mk ” 相关文件
{
arm_config.mk
cpu/arm920t/config.mk
cpu/arm920t/s3c24x0/config.mk 没有这个文件,忽略
board/100ask24x0/config.mk //TEXT_BASE = 0x33F80000
}
vi config.mk
{
sinclude $(TOPDIR)/$(ARCH)_config.mk # include architecture dependend rules
endif
ifdef CPU
sinclude $(TOPDIR)/cpu/$(CPU)/config.mk # include CPU specific rules
endif
ifdef SOC
sinclude $(TOPDIR)/cpu/$(CPU)/$(SOC)/config.mk # include SoC specific rules
endif
ifdef VENDOR
BOARDDIR = $(VENDOR)/$(BOARD)
else
BOARDDIR = $(BOARD)
endif
ifdef BOARD
sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific rules
endif # Include the make variables (CC, etc...)
#
AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)gcc
.......... } 继续分析Makefile
从199-211这些位置指定了生成LIBS变量就是平台、libasm、cpu、通用目录等下面的库。
OBJS和LIBS就是uboot的组成,它们再通过268-279这些代码生成。
声称以后,就剩下链接了。这由 - 266这些代码完成,其中,LDFLAGS指定了程序的布局和地址。
LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
-T board/100ask24x0/u-boot.lds -Ttext 0x33F80000 .总结编译流程,对于100ask24x0.
()先编译cpu/arm920t/start.S
()对于平台、开发板、公共目录等各自调用他们的Makefile生成相应的库;
()将1,2两步生成的.o, .a文件按照-T board/100ask24x0/u-boot.lds -Ttext 0x33F80000 的布局链接起来。
()将第三步得到的uboot文件转换为二进制格式、s-record等格式。
同时也可以根据需要,得到uboot.dis反汇编文件。arm-linux-objdump -d u-boot > u-boot.dis

uboot编译: uboot编译配置和编译过程的更多相关文章

  1. QT:提高QT Creator编译速度,配置预编译头Stable.h

    提高QT Creator编译速度,配置预编译头Stable.h QT Creator支持预编译头提高编辑速度,网上有些教程写得不详细,走了弯路,具体实现方法如下. (1)工程.PRO文件加入下面代码 ...

  2. uboot主Makefile分析(t配置和编译过程详解)

    1.编译uboot前需要三次make make distcleanmake x210_sd_configmake -j4 make distclean为清楚dist文件. make x210_sd_c ...

  3. uboot配置和编译过程详解【转】

    本文转载自:http://blog.csdn.net/czg13548930186/article/details/53434566 uboot主Makefile分析1 1.uboot version ...

  4. uboot配置和编译过程详解

    根据朱有鹏老师讲解整理 一.uboot主Makefile分析 1.uboot version确定(Makefile的24-29行) include/version_autogenerated.h文件是 ...

  5. u-boot的配置、编译及链接

    第一次写技术博客,还有些兴奋呢.我是CrazyCatJack,大家可以叫我CCJ或者疯猫.我即将成为一名嵌入式Linux的驱动工程师,现在还是一枚大四狗,呼呼~大学期间做了一些项目和比赛,都是基于32 ...

  6. 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)

    深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...

  7. [uboot] (第四章)uboot流程——uboot编译流程

    http://blog.csdn.net/ooonebook/article/details/53000893 以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为 ...

  8. [uboot] (第四章)uboot流程——uboot编译流程 (转)

    以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例 [uboot] uboot流程系列:[project X] tiny210(s5pv210)上电启动流程(B ...

  9. hi3531 SDK 编译 uboot, 改动PHY地址, 改动 uboot 參数 .

    一,编译uboot SDK文档写得比較清楚了,写一下须要注意的地方吧. 1. 之前用SDK里和别人给的已经编译好的uboot,使用fastboot工具都刷不到板子上.最后自己用SDK里uboot源代码 ...

随机推荐

  1. Android 开发笔记“调用.net webservice遇到的问题”

    1.An exception occurred: org.ksoap2.SoapFault SoapFault - faultcode: 'soap:Server' faultstring: '服务器 ...

  2. INDEX相关

    1.索引应该建立在WHERE子句经常用到的表列上,如果在大表上频率使用某列或者某几列作为条件执行检索操作,并且检索的行数低于总行数的15%,那么应该考虑在该几行上添加索引. 2.为了提高多表连接的性能 ...

  3. IOS 表视图(UITableVIew)的使用方法(4)自定义表视图单元

    UITableViewCell的自定义往往需要自建一个UITableViewCell的子类后进行作业.开发者可以选择通过xib或者直接在UITableViewCell的布局中进行UITableView ...

  4. JVM典型配置

    堆大小设置: JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存 限制.32位系统下,一般限制在1.5G~2G:64为 ...

  5. MVC-07 案例2

    二.电子商务网站 掌握该网站的开发流程和设计思路,并为数据模型中商品.商品分类,这两个类编写代码. 1.需求分析 2.数据模型规划 (1)商品类别 (2)商品信息 (3)会员信息 (4)购物车项目 ( ...

  6. 常见排序算法C++总结

    看了总结图,我这里就总结一下 直接插入排序,冒泡排序,快速排序,堆排序和归并排序,使用C++实现 重新画了总结图 直接插入排序 整个序列分为有序区和无序区,取第一个元素作为初始有序区,然后第二个开始, ...

  7. 带你一起Piu Piu Piu~

    单刀直入,今天要讲的是自己写的一个WPF动画例子.我们在看下最终效果~ 最近在重看WPF编程宝典2010,在练习第15章动画性能例子时有了些想法.原始例子如下:  原始例子(打包了整个15章的) 它是 ...

  8. 隐藏nginx 版本号信息(转)

    为了安全,想将http请求响应头里的nginx版本号信息隐藏掉: 1. nginx配置文件里增加 server_tokens off; server_tokens作用域是http server loc ...

  9. 利用jxl读取excel合并的单元格的一个小样例

    工作中我们可能要把Excel文件的记录保存到数据库, 今天我用jxl读取Excel文件时遇到了合并格的问题,记录例如以下: 如Excel文件例如以下: watermark/2/text/aHR0cDo ...

  10. Backbone入门教程

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...