关于s5pv210主Makefile部分代码的分析和小的修改
更新:HHH   时间:2023-1-7


$(obj)/include/config.mk  指的就是 uboot/include/config.mk

ARCH = arm   CPU = s5pc11x   BOARD = x210

VENDOR = samsung   SOC = s5pc110

OBJS = cpu/$(CPU)/start.o   OBJS = cpu/s5pc11x/start.o

LIBBOARD = board/$(BOARDDIR)/lib$(BOARD).a

lib$(BOARD).a 等价于 libx210.a

LIBBOARD  :uboot/board/$(BOARDDIR)/libx210.a

ALL += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map $(U_BOOT_NAND) $(U_BOOT_ONENAND) $(obj)u-boot.dis

ifeq ($(ARCH),blackfin)

ALL += $(obj)u-boot.ldr


ALL 包含uboot文件夹下的u-boot.srec、u-boot.bin、System.map

u-boot-nand.bin、u-boot-onenand.bin、u-boot.dis


unconfig:作为目标和我们编写的简单的Makefile中clean:意义相同就是清除配置时产生的相关配置文件,这样在make前的配置过程即使已经配置过了,也可以进行多次重复的配置


x210_sd_config : unconfig

@$(MKCONFIG) $(@:_config=) arm s5pc11x x210 samsung s5pc110

@echo "TEXT_BASE = 0xc3e00000" > $(obj)board/samsung/x210/config.mk


在进行配置操作时,一般情况下,我们是这样做的:

make x210_sd_config

对此操作我们进行一些修改:在做相关修改之前需要看这样有一段代码是关于之前提到的unconfig的;

unconfig:

@rm -f $(obj)include/config.h $(obj)include/config.mk \

$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \

$(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep \

$(obj)board/$(VENDOR)/$(BOARD)/config.mk

从以上代码我们可以看出每次进行配置操作时,由于此目标unconfig

是配置代码的依赖,所以先执行的是依赖,所以配置的时候会自动删除 uboot/board/samsung/x210 文件夹下的config.mk文件,所以我们做如下修改:直接删除

$(obj)board/$(VENDOR)/$(BOARD)/config.mk此段代码,并且在

uboot/board/samsung/x210目录下建立一个内容为 ”TEXT_BASE = 0xc3e00000“ 的config.mk文件,这时我们可以直接

make x210_sd_config

或者这样做:

./mkconfig x210_sd arm s5pc11x x210 samsung s5pc110

此操作等同于 make x210_sd_config

经实际编译运行证明此方法可行


返回开发技术教程...