i.mx6quard uboot 之nand

过段时间板子就要到了,虽然之前做过A8的,但那已是三年前的事情了,现在必须的再温习一下,一下为分析概要

顶层的Makefile先包含

一、

    110
    111 MKCONFIG        := $(SRCTREE)/mkconfig
    112 export MKCONFIG
mkconfig里通过传递的参数配置板子

28 echo "Configuring for ${BOARD_NAME} board..."

Makefile里传递的参数

   3309 mx6dl_arm2_config               \
   3310 mx6dl_arm2_iram_config          \
   3311 mx6dl_arm2_mfg_config           \
   3312 mx6dl_arm2_lpddr2_config        \
   3313 mx6q_arm2_config                \
   3314 mx6q_arm2_nand_config           \
   3315 mx6q_arm2_android_config        \
   3316 mx6q_arm2_mfg_config            \
   3317 mx6q_arm2_lpddr2_config         \
   3318 mx6q_arm2_lpddr2pop_config      \
   3319 mx6q_arm2_iram_config   : unconfig
   3320         @[ -z "$(findstring iram_,$@)" ] || \
   3321                 { echo "TEXT_BASE = 0x00907000" >$(obj)board/freescale/mx6q_arm2/config.tmp ; \
   3322                   echo "... with iram configuration" ; \
   3323                 }
   3324         @$(MKCONFIG) $(@:_config=) arm arm_cortexa8 mx6q_arm2 freescale mx6

建立相应的文件链接,包含相应的头文件

     46         cd ./include
     47         rm -f asm
     48         ln -s asm-$2 asm
     49 fi
     50
     51 rm -f asm-$2/arch
     52
     53 if [ -z "$6" -o "$6" = "NULL" ] ; then
     54         ln -s ${LNPREFIX}arch-$3 asm-$2/arch
     55 else
     56         ln -s ${LNPREFIX}arch-$6 asm-$2/arch
     57 fi
     58
     59 if [ "$2" = "arm" ] ; then
     60         rm -f asm-$2/proc
     61         ln -s ${LNPREFIX}proc-armv asm-$2/proc
     62 fi
     63
     64 #
     65 # Create include file for Make
     66 #
     67 echo "ARCH   = $2" >  config.mk
     68 echo "CPU    = $3" >> config.mk
     69 echo "BOARD  = $4" >> config.mk
     70
     71 [ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk
     72
     73 [ "$6" ] && [ "$6" != "NULL" ] && echo "SOC    = $6" >> config.mk
     74
     75 #
     76 # Create board specific header file
     77 #
     78 if [ "$APPEND" = "yes" ]        # Append to existing config file
     79 then
     80         echo >> config.h
     81 else
     82         > config.h              # Create new config file
     83 fi
     84 echo "/* Automatically generated - do not edit */" >>config.h
     85 echo "#include <configs/$1.h>" >>config.h
     86 echo "#include <asm/config.h>" >>config.h
     87
     88 exit 0

这里主要

1、建立的include 目录下的asm  proc目录链接,

2、建立include 目录下的config.mk

3、建立include目录下的config.h

arm/arch-mx6目录下的文件

jolinery@jolinery:~/myandroid/bootable/bootloader/uboot-imx/include/asm/arch-mx6$ ls
gpio.h      iomux.h     mmu.h         mx6.h       mx6_secure.h  regs-anadig.h
imx-regs.h  iomux-v3.h  mx6dl_pins.h  mx6_pins.h  mx6sl_pins.h  regs-ocotp.h

二、包含mkconfig里生存的include目录下的config.mk里的东东,然后全局他

    151 # to all top level build files.  We need the dummy all: target to prevent the
    152 # dependency target in autoconf.mk.dep from being the default.
    153 all:
    154 sinclude $(obj)include/autoconf.mk.dep
    155 sinclude $(obj)include/autoconf.mk
    156
    157 # load ARCH, BOARD, and CPU configuration
    158 include $(obj)include/config.mk
    159 export  ARCH CPU BOARD VENDOR SOC
三、包含顶层的config.mk
    165
    166 # load other configuration
    167 include $(TOPDIR)/config.mk
config.mk里的东东

1、工具的指定

    65 #
     66 # Include the make variables (CC, etc...)
     67 #
     68 AS      = $(CROSS_COMPILE)as
     69 LD      = $(CROSS_COMPILE)ld
     70 CC      = $(CROSS_COMPILE)gcc
     71 CPP     = $(CC) -E
     72 AR      = $(CROSS_COMPILE)ar
     73 NM      = $(CROSS_COMPILE)nm
     74 LDR     = $(CROSS_COMPILE)ldr
     75 STRIP   = $(CROSS_COMPILE)strip
     76 OBJCOPY = $(CROSS_COMPILE)objcopy
     77 OBJDUMP = $(CROSS_COMPILE)objdump
     78 RANLIB  = $(CROSS_COMPILE)RANLIB
     79
 

2、包含相关目录下的.mk文件

     82 # Load generated board configuration
     83 sinclude $(OBJTREE)/include/autoconf.mk
     84
     85 ifdef   ARCH
     86 sinclude $(TOPDIR)/lib_$(ARCH)/config.mk        # include architecture dependend rules
     87 endif
     88 ifdef   CPU
     89 sinclude $(TOPDIR)/cpu/$(CPU)/config.mk         # include  CPU  specific rules
     90 endif
     91 ifdef   SOC
     92 sinclude $(TOPDIR)/cpu/$(CPU)/$(SOC)/config.mk  # include  SoC  specific rules
     93 endif
     94 ifdef   VENDOR
     95 BOARDDIR = $(VENDOR)/$(BOARD)
     96 else
     97 BOARDDIR = $(BOARD)
     98 endif
     99 ifdef   BOARD
    100 sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk  # include board specific rules
3、链接脚本的指定

  104
    105 ifneq (,$(findstring s,$(MAKEFLAGS)))
    106 ARFLAGS = cr
    107 else
    108 ARFLAGS = crv
    109 endif
    110 RELFLAGS= $(PLATFORM_RELFLAGS)
    111 DBGFLAGS= -g # -DDEBUG
    112 OPTFLAGS= -Os #-fomit-frame-pointer
    113 ifndef LDSCRIPT
    114 #LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds.debug
    115 ifeq ($(CONFIG_NAND_U_BOOT),y)
    116 LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds
    117 else
    118 LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
    119 endif
    120 endif
    121 OBJCFLAGS += --gap-fill=0xff
    122

四、目标文件、依赖文件的建立

 170 # U-Boot objects....order is important (i.e. start must be first)
    171
    172 OBJS  = cpu/$(CPU)/start.o
    173 ifeq ($(CPU),i386)
    174 OBJS += cpu/$(CPU)/start16.o
    175 OBJS += cpu/$(CPU)/resetvec.o
    176 endif
    177 ifeq ($(CPU),ppc4xx)
    178 OBJS += cpu/$(CPU)/resetvec.o
    179 endif
    180 ifeq ($(CPU),mpc85xx)
    181 OBJS += cpu/$(CPU)/resetvec.o
    182 endif
    183
    184 OBJS := $(addprefix $(obj),$(OBJS))
    185
    186 LIBS  = lib_generic/libgeneric.a
    187 LIBS += lib_generic/lzma/liblzma.a
    188 LIBS += lib_generic/lzo/liblzo.a
    189 LIBS += $(shell if [ -f board/$(VENDOR)/common/Makefile ]; then echo \
    190         "board/$(VENDOR)/common/lib$(VENDOR).a"; fi)
    191 LIBS += cpu/$(CPU)/lib$(CPU).a
    192 ifdef SOC
    193 LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a
    194 endif
    195 ifeq ($(CPU),ixp)
    196 LIBS += cpu/ixp/npe/libnpe.a
    197 endif
    198 LIBS += lib_$(ARCH)/lib$(ARCH).a
    199 LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \
    200         fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a fs/yaffs2/libyaffs2.a \
    201         fs/ubifs/libubifs.a
    202 LIBS += net/libnet.a
    203 LIBS += disk/libdisk.a
    204 LIBS += drivers/bios_emulator/libatibiosemu.a
    205 LIBS += drivers/block/libblock.a
    206 LIBS += drivers/dma/libdma.a
    207 LIBS += drivers/fpga/libfpga.a
    208 LIBS += drivers/gpio/libgpio.a
    209 LIBS += drivers/hwmon/libhwmon.a
    210 LIBS += drivers/i2c/libi2c.a
    211 LIBS += drivers/input/libinput.a
   212 LIBS += drivers/misc/libmisc.a
    213 LIBS += drivers/mmc/libmmc.a
    214 LIBS += drivers/mtd/libmtd.a
    215 LIBS += drivers/mtd/nand/libnand.a
    216 LIBS += drivers/mtd/onenand/libonenand.a
    217 LIBS += drivers/mtd/ubi/libubi.a
    218 LIBS += drivers/mtd/spi/libspi_flash.a
    219 LIBS += drivers/net/libnet.a
    220 LIBS += drivers/net/phy/libphy.a
    221 LIBS += drivers/net/sk98lin/libsk98lin.a
    222 LIBS += drivers/pci/libpci.a
    223 LIBS += drivers/pcmcia/libpcmcia.a
    224 LIBS += drivers/power/libpower.a
    225 LIBS += drivers/spi/libspi.a
    226 LIBS += drivers/fastboot/libfastboot.a
    227 ifeq ($(CPU),mpc83xx)
    228 LIBS += drivers/qe/qe.a
    229 endif
    230 ifeq ($(CPU),mpc85xx)
    231 LIBS += drivers/qe/qe.a
    232 LIBS += cpu/mpc8xxx/ddr/libddr.a
    233 TAG_SUBDIRS += cpu/mpc8xxx
    234 endif
   235 ifeq ($(CPU),mpc86xx)
    236 LIBS += cpu/mpc8xxx/ddr/libddr.a
    237 TAG_SUBDIRS += cpu/mpc8xxx
    238 endif
    239 LIBS += drivers/rtc/librtc.a
    240 LIBS += drivers/serial/libserial.a
    241 LIBS += drivers/twserial/libtws.a
    242 LIBS += drivers/usb/gadget/libusb_gadget.a
    243 LIBS += drivers/usb/host/libusb_host.a
    244 LIBS += drivers/usb/musb/libusb_musb.a
    245 LIBS += drivers/video/libvideo.a
    246 LIBS += drivers/watchdog/libwatchdog.a
    247 LIBS += common/libcommon.a
    248 LIBS += libfdt/libfdt.a
    249 LIBS += api/libapi.a
    250 LIBS += post/libpost.a
    251
    252 LIBS := $(addprefix $(obj),$(LIBS))
    253 .PHONY : $(LIBS) $(TIMESTAMP_FILE) $(VERSION_FILE)
    254
    255 LIBBOARD = board/$(BOARDDIR)/lib$(BOARD).a
    256 LIBBOARD := $(addprefix $(obj),$(LIBBOARD))
    257
    258 # Add GCC lib
    259 ifdef USE_PRIVATE_LIBGCC
    260 ifeq ("$(USE_PRIVATE_LIBGCC)", "yes")
    261 PLATFORM_LIBGCC = -L $(OBJTREE)/lib_$(ARCH) -lgcc
    262 else
    263 PLATFORM_LIBGCC = -L $(USE_PRIVATE_LIBGCC) -lgcc
    264 endif
    265 else
    266 PLATFORM_LIBGCC = -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
    267 endif
    268 PLATFORM_LIBS += $(PLATFORM_LIBGCC)
    269 export PLATFORM_LIBS
    270
    271 # Special flags for CPP when processing the linker script.
    272 # Pass the version down so we can handle backwards compatibility
    273 # on the fly.
    274 LDPPFLAGS += \
    275         -include $(TOPDIR)/include/u-boot/u-boot.lds.h \
    276         $(shell $(LD) --version | \
    277           sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p')
    278
   279 ifeq ($(CONFIG_NAND_U_BOOT),y)
    280 NAND_SPL = nand_spl
    281 U_BOOT_NAND = $(obj)u-boot-nand.bin
    282 endif
    283
    284 ifeq ($(CONFIG_ONENAND_U_BOOT),y)
    285 ONENAND_IPL = onenand_ipl
    286 U_BOOT_ONENAND = $(obj)u-boot-onenand.bin
    287 endif
    288
    289 __OBJS := $(subst $(obj),,$(OBJS))
    290 __LIBS := $(subst $(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD))
    291
 295 # Always append ALL so that arch config.mk's can add custom ones
    296 ALL += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map $(U_BOOT_NAND) $(U_BOOT_ONENAND)
    297
    298 all:            $(ALL)
    299
    300 $(obj)u-boot.hex:       $(obj)u-boot
    301                 $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@
    302
    303 $(obj)u-boot.srec:      $(obj)u-boot
    304                 $(OBJCOPY) -O srec $< $@
    305
    306 $(obj)u-boot.bin:       $(obj)u-boot
    307                 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
    308
    309 $(obj)u-boot.ldr:       $(obj)u-boot
    310                 $(obj)tools/envcrc --binary > $(obj)env-ldr.o
    311                 $(LDR) -T $(CONFIG_BFIN_CPU) -c $@ $< $(LDR_FLAGS)
    312
    313 $(obj)u-boot.ldr.hex:   $(obj)u-boot.ldr
    314                 $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ -I binary
    315
   316 $(obj)u-boot.ldr.srec:  $(obj)u-boot.ldr
    317                 $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ -I binary
    318
    319 $(obj)u-boot.img:       $(obj)u-boot.bin
    320                 ./tools/mkimage -A $(ARCH) -T firmware -C none \
    321                 -a $(TEXT_BASE) -e 0 \
    322                 -n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' $(VERSION_FILE) | \
    323                         sed -e 's/"[     ]*$$/ for $(BOARD) board"/') \
    324                 -d $< $@
    325
    326 $(obj)u-boot.sha1:      $(obj)u-boot.bin
    327                 $(obj)tools/ubsha1 $(obj)u-boot.bin
    328
    329 $(obj)u-boot.dis:       $(obj)u-boot
    330                 $(OBJDUMP) -d $< > $@
    331
    332 GEN_UBOOT = \
    333                 UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
    334                 sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
    335                 cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
@                                                                               
 336                         --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
    337                         -Map u-boot.map -o u-boot
    338 $(obj)u-boot:   depend $(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
    339                 $(GEN_UBOOT)
    340 ifeq ($(CONFIG_KALLSYMS),y)
    341                 smap=`$(call SYSTEM_MAP,u-boot) | \
    342                         awk '$$2 ~ /[tTwW]/ {printf $$1 $$3 "\\\\000"}'` ; \
    343                 $(CC) $(CFLAGS) -DSYSTEM_MAP="\"$${smap}\"" \
    344                         -c common/system_map.c -o $(obj)common/system_map.o
    345                 $(GEN_UBOOT) $(obj)common/system_map.o
    346 endif
    347
    348 $(OBJS):        depend
    349                 $(MAKE) -C cpu/$(CPU) $(if $(REMOTE_BUILD),$@,$(notdir $@))
    350
    351 $(LIBS):        depend $(SUBDIRS)
    352                 $(MAKE) -C $(dir $(subst $(obj),,$@))
    353

 354 $(LIBBOARD):    depend $(LIBS)
    355                 $(MAKE) -C $(dir $(subst $(obj),,$@))
    356
    357 $(SUBDIRS):     depend
    358                 $(MAKE) -C $@ all
    359
    360 $(LDSCRIPT):    depend
    361                 $(MAKE) -C $(dir $@) $(notdir $@)
    362
    363 $(obj)u-boot.lds: $(LDSCRIPT)
    364                 $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
    365
    366 $(NAND_SPL):    $(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk
    367                 $(MAKE) -C nand_spl/board/$(BOARDDIR) all
    368
    369 $(U_BOOT_NAND): $(NAND_SPL) $(obj)u-boot.bin
    370                 cat $(obj)nand_spl/u-boot-spl-16k.bin $(obj)u-boot.bin > $(obj)u-boot-nand.bin
    371
    372 $(ONENAND_IPL): $(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk
 373                 $(MAKE) -C onenand_ipl/board/$(BOARDDIR) all
    374
    375 $(U_BOOT_ONENAND):      $(ONENAND_IPL) $(obj)u-boot.bin
    376                 cat $(obj)onenand_ipl/onenand-ipl-2k.bin $(obj)u-boot.bin > $(obj)u-boot-onenand.bin
    377                 cat $(obj)onenand_ipl/onenand-ipl-4k.bin $(obj)u-boot.bin > $(obj)u-boot-flexonenand.bin
    378
    379 $(VERSION_FILE):
    380                 @( printf '#define U_BOOT_VERSION "U-Boot %s%s"\n' "$(U_BOOT_VERSION)" \
    381                  '$(shell $(TOPDIR)/tools/setlocalversion $(TOPDIR))' ) > $@.tmp
    382                 @cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@
    383
    384 $(TIMESTAMP_FILE):
    385                 @date +'#define U_BOOT_DATE "%b %d %C%y"' > $@
    386                 @date +'#define U_BOOT_TIME "%T"' >> $@
    387
    388 gdbtools:
    389                 $(MAKE) -C tools/gdb all || exit 1
    390
    391 updater:
  392                 $(MAKE) -C tools/updater all || exit 1
    393
    394 env:
    395                 $(MAKE) -C tools/env all MTD_VERSION=${MTD_VERSION} || exit 1
    396
    397 depend dep:     $(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk
    398                 for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir _depend ; done
    399
    400 TAG_SUBDIRS += include
    401 TAG_SUBDIRS += lib_generic board/$(BOARDDIR)
    402 TAG_SUBDIRS += cpu/$(CPU)
    403 TAG_SUBDIRS += lib_$(ARCH)
    404 TAG_SUBDIRS += fs/cramfs
    405 TAG_SUBDIRS += fs/fat
    406 TAG_SUBDIRS += fs/fdos
    407 TAG_SUBDIRS += fs/jffs2
    408 TAG_SUBDIRS += fs/yaffs2
    409 TAG_SUBDIRS += net
    410 TAG_SUBDIRS += disk
    411 TAG_SUBDIRS += common
  412 TAG_SUBDIRS += drivers/bios_emulator
    413 TAG_SUBDIRS += drivers/block
    414 TAG_SUBDIRS += drivers/gpio
    415 TAG_SUBDIRS += drivers/hwmon
    416 TAG_SUBDIRS += drivers/i2c
    417 TAG_SUBDIRS += drivers/input
    418 TAG_SUBDIRS += drivers/misc
    419 TAG_SUBDIRS += drivers/mmc
    420 TAG_SUBDIRS += drivers/mtd
    421 TAG_SUBDIRS += drivers/mtd/nand
    422 TAG_SUBDIRS += drivers/mtd/onenand
    423 TAG_SUBDIRS += drivers/mtd/spi
    424 TAG_SUBDIRS += drivers/net
    425 TAG_SUBDIRS += drivers/net/sk98lin
    426 TAG_SUBDIRS += drivers/pci
    427 TAG_SUBDIRS += drivers/pcmcia
    428 TAG_SUBDIRS += drivers/qe
    429 TAG_SUBDIRS += drivers/rtc
    430 TAG_SUBDIRS += drivers/serial
    431 TAG_SUBDIRS += drivers/spi
    432 TAG_SUBDIRS += drivers/usb
    433 TAG_SUBDIRS += drivers/video
    434
    435 tags ctags:
    436                 ctags -w -o $(obj)ctags `find $(SUBDIRS) $(TAG_SUBDIRS) \
    437                                                 -name '*.[ch]' -print`
    438
    439 etags:
    440                 etags -a -o $(obj)etags `find $(SUBDIRS) $(TAG_SUBDIRS) \
    441                                                 -name '*.[ch]' -print`
    442 cscope:
    443                 find $(SUBDIRS) $(TAG_SUBDIRS) -name '*.[ch]' -print \
    444                                                 > cscope.files
    445                 cscope -b -q -k
    446
    447 SYSTEM_MAP = \
    448                 $(NM) $1 | \
    449                 grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
    450                 LC_ALL=C sort
    451 $(obj)System.map:       $(obj)u-boot
    452                 @$(call SYSTEM_MAP,$<) > $(obj)System.map
    453
   454 #
    455 # Auto-generate the autoconf.mk file (which is included by all makefiles)
    456 #
    457 # This target actually generates 2 files; autoconf.mk and autoconf.mk.dep.
    458 # the dep file is only include in this top level makefile to determine when
    459 # to regenerate the autoconf.mk file.
    460 $(obj)include/autoconf.mk.dep: $(obj)include/config.h include/common.h
    461         @$(XECHO) Generating $@ ; \
    462         set -e ; \
    463         : Generate the dependancies ; \
    464         $(CC) -x c -DDO_DEPS_ONLY -M $(HOSTCFLAGS) $(CPPFLAGS) \
    465                 -MQ $(obj)include/autoconf.mk include/common.h > $@
    466
    467 $(obj)include/autoconf.mk: $(obj)include/config.h
    468         @$(XECHO) Generating $@ ; \
    469         set -e ; \
    470         : Extract the config macros ; \
    471         $(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \
    472                 sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
    473         mv $@.tmp $@

 475 #########################################################################
    476 else    # !config.mk
    477 all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \
    478 $(obj)u-boot.img $(obj)u-boot.dis $(obj)u-boot \
    479 $(SUBDIRS) $(TIMESTAMP_FILE) $(VERSION_FILE) gdbtools updater env depend \
    480 dep tags ctags etags cscope $(obj)System.map:
    481         @echo "System not configured - see README" >&2
    482         @ exit 1
    483 endif   # config.mk

 

jolinery@jolinery:~/myandroid/bootable/bootloader/uboot-imx/board/freescale/mx6q_sabreauto$ ls
config.mk       lowlevel_init.S  mx6q_sabreauto.c
flash_header.S  Makefile         u-boot.lds

 

  392                 $(MAKE) -C tools/updater all || exit 1
    393
    394 env:
    395                 $(MAKE) -C tools/env all MTD_VERSION=${MTD_VERSION} || exit 1
    396
    397 depend dep:     $(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk
    398                 for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir _depend ; done
    399
    400 TAG_SUBDIRS += include
    401 TAG_SUBDIRS += lib_generic board/$(BOARDDIR)
    402 TAG_SUBDIRS += cpu/$(CPU)
    403 TAG_SUBDIRS += lib_$(ARCH)
    404 TAG_SUBDIRS += fs/cramfs
    405 TAG_SUBDIRS += fs/fat
    406 TAG_SUBDIRS += fs/fdos
    407 TAG_SUBDIRS += fs/jffs2
    408 TAG_SUBDIRS += fs/yaffs2
    409 TAG_SUBDIRS += net
    410 TAG_SUBDIRS += disk
    411 TAG_SUBDIRS += common

 

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值