$(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
经实际编译运行证明此方法可行