分享

基于ar9331 mips架构AP121 uboot分析(2) 顶层Makefile,mkconfig | Imagination中文技术社区

 云将东游 2016-02-24

uboot 顶层Makefile文件
make mr3220_v2_config 实际就执行了unconfig 和 hornet_common_config
1.unconfig rm -f include/config.h include/config.mk board/*/config.tmp
2.hornet_common_config向include/config.h 写入一些define ,然后执行顶层目录的./mkconfig -a ap121 mips mips ap121 ar7240 ar7240
下面是顶层Makefile

#
# (C) Copyright 2000-2006
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# See file CREDITS for list of people who contributed to this
# project.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#

VERSION = 1
PATCHLEVEL = 1
SUBLEVEL = 4
EXTRAVERSION =
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
VERSION_FILE = include/version_autogenerated.h

HOSTARCH := $(shell uname -m | \
sed -e s/i.86/i386/ \
-e s/sun4u/sparc64/ \
-e s/arm.*/arm/ \
-e s/sa110/arm/ \
-e s/powerpc/ppc/ \
-e s/macppc/ppc/)

HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
sed -e 's/\(cygwin\).*/cygwin/')

export HOSTARCH HOSTOS

# Deal with colliding definitions from tcsh etc.
VENDOR=

#########################################################################

TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
export TOPDIR

COMPRESSED_UBOOT = 1
export export COMPRESSED_UBOOT

ifeq (include/config.mk,$(wildcard include/config.mk))
# load ARCH, BOARD, and CPU configuration
include include/config.mk
export ARCH CPU BOARD VENDOR SOC
ifndef CROSS_COMPILE
ifeq ($(HOSTARCH),ppc)
CROSS_COMPILE =
else
ifeq ($(ARCH),ppc)
CROSS_COMPILE = powerpc-linux-
endif
ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-linux-
endif
ifeq ($(ARCH),i386)
ifeq ($(HOSTARCH),i386)
CROSS_COMPILE =
else
CROSS_COMPILE = i386-linux-
endif
endif
ifeq ($(ARCH),mips)
CROSS_COMPILE = mips-linux-
endif
ifeq ($(ARCH),nios)
CROSS_COMPILE = nios-elf-
endif
ifeq ($(ARCH),nios2)
CROSS_COMPILE = nios2-elf-
endif
ifeq ($(ARCH),m68k)
CROSS_COMPILE = m68k-elf-
endif
ifeq ($(ARCH),microblaze)
CROSS_COMPILE = mb-
endif
ifeq ($(ARCH),blackfin)
CROSS_COMPILE = bfin-elf-
endif
endif
endif

export CROSS_COMPILE

# load other configuration
include $(TOPDIR)/config.mk

#########################################################################
# U-Boot objects....order is important (i.e. start must be first)
OBJS = cpu/$(CPU)/start.o

OBJS_BOOTSTRAP = cpu/$(CPU)/start_bootstrap.o

LIBS = lib_generic/libgeneric.a
LIBS += common/libcommon.a
LIBS += board/$(BOARDDIR)/lib$(BOARD).a
LIBS += cpu/$(CPU)/lib$(CPU).a

ifdef SOC
LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a
endif

LIBS += drivers/libdrivers.a
LIBS += lib_$(ARCH)/lib$(ARCH).a
LIBS += net/libnet.a
LIBS += rtc/librtc.a
LIBS += $(BOARDLIBS)

LIBS_BOOTSTRAP = lib_bootstrap/libbootstrap.a
LIBS_BOOTSTRAP += board/$(BOARDDIR)/lib$(BOARD).a
LIBS_BOOTSTRAP += cpu/$(CPU)/lib$(CPU).a
LIBS_BOOTSTRAP += cpu/$(CPU)/$(SOC)/lib$(SOC).a

.PHONY : $(LIBS)
.PHONY : $(LIBS_BOOTSTRAP)

# Add GCC lib
PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc

# The "tools" are needed early, so put this first
# Don't include stuff already done in $(LIBS)
SUBDIRS = tools

.PHONY : $(SUBDIRS)

#########################################################################
#########################################################################

ALL = u-boot.srec u-boot.bin System.map

all: $(ALL) tuboot.bin

u-boot.hex: u-boot
$(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@

u-boot.srec: u-boot
$(OBJCOPY) ${OBJCFLAGS} -O srec $< $@

u-boot.bin: u-boot
$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@

u-boot.img: u-boot.bin
./tools/mkimage -A $(ARCH) -T firmware -C none \
-a $(TEXT_BASE) -e 0 \
-n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' $(VERSION_FILE) | \
sed -e 's/"[ ]*$$/ for $(BOARD) board"/') \
-d $< $@

u-boot.dis: u-boot
$(OBJDUMP) -d $< > $@

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`;\
$(LD) $(LDFLAGS) $$UNDEF_SYM $(OBJS) \
--start-group $(LIBS) --end-group $(PLATFORM_LIBS) \
-Map u-boot.map -o u-boot

$(LIBS):
$(MAKE) -C `dirname $@`

$(SUBDIRS):
$(MAKE) -C $@ all

LZMA = $(BUILD_TOPDIR)/host_util/lzma

tuboot.bin: System.map bootstrap.bin u-boot.lzimg
cat bootstrap.bin > $@
cat u-boot.lzimg >> $@

u-boot.lzimg: $(obj)u-boot.bin System.map
@rm -rf u-boot.bin.lzma
$(LZMA) e $(obj)u-boot.bin u-boot.bin.lzma
./tools/mkimage -A mips -T firmware -C lzma \
-a 0x$(shell grep "T _start" $(TOPDIR)/System.map | awk '{ printf "%s", $$1 }') \
-e 0x$(shell grep "T _start" $(TOPDIR)/System.map | awk '{ printf "%s", $$1 }') \
-n 'u-boot image' -d $(obj)u-boot.bin.lzma $@

bootstrap.bin: bootstrap
$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@

bootstrap: depend version $(SUBDIRS) $(OBJS_BOOTSTRAP) $(LIBS_BOOTSTRAP) $(LDSCRIPT_BOOTSTRAP)
UNDEF_SYM=`$(OBJDUMP) -x $(LIBS_BOOTSTRAP) |sed -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
$(LD) $(LDFLAGS_BOOTSTRAP) $$UNDEF_SYM $(OBJS_BOOTSTRAP) \
--start-group $(LIBS_BOOTSTRAP) --end-group $(PLATFORM_LIBS) \
-Map bootstrap.map -o bootstrap

$(LIBS_BOOTSTRAP):
$(MAKE) -C `dirname $@`

version:
@echo -n "#define U_BOOT_VERSION \"U-Boot " > $(VERSION_FILE); \
echo -n "$(U_BOOT_VERSION)" >> $(VERSION_FILE); \
echo -n $(shell $(CONFIG_SHELL) $(TOPDIR)/tools/setlocalversion \
$(TOPDIR)) >> $(VERSION_FILE); \
echo "\"" >> $(VERSION_FILE)

gdbtools:
$(MAKE) -C tools/gdb || exit 1

depend dep:
@for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir .depend ; done

tags:
ctags -w `find $(SUBDIRS) include \
lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \
fs/cramfs fs/fat fs/fdos fs/jffs2 \
net disk rtc dtt drivers drivers/sk98lin common \
\( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`

etags:
etags -a `find $(SUBDIRS) include \
lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \
fs/cramfs fs/fat fs/fdos fs/jffs2 \
net disk rtc dtt drivers drivers/sk98lin common \
\( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`

System.map: u-boot
@$(NM) $< | \
grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
sort > System.map

#########################################################################
else
all install u-boot u-boot.srec depend dep:
@echo "System not configured - see README" >&2
@ exit 1
endif

#########################################################################

unconfig:
@rm -f include/config.h include/config.mk board/*/config.tmp

#========================================================================
# MIPS
#========================================================================
#########################################################################
## MIPS32 AR7100 (24K)
#########################################################################

hornet_common_config :
@ >include/config.h
@echo "#define CONFIG_AR7240 1" >>include/config.h
@echo "#define CONFIG_MACH_HORNET 1" >>include/config.h
@echo "#define CONFIG_HORNET_1_1_WAR 1" >>include/config.h
@echo "#define NEW_DDR_TAP_CAL 1" >>include/config.h

ifeq ($(CONFIG_HORNET_XTAL), 40)
@echo "#define CONFIG_40MHZ_XTAL_SUPPORT 1" >>include/config.h
endif

ifdef AP121_CONFIG_BOOTDELAY
@echo "#define CONFIG_BOOTDELAY "$(AP121_CONFIG_BOOTDELAY) >>include/config.h
endif

#@echo "#define CONFIG_SHOW_BOOT_PROGRESS 1" >>include/config.h

@echo "#define CONFIG_DELAY_TO_AUTORUN_HTTPD 3" >>include/config.h
@echo "#define CONFIG_DELAY_TO_AUTORUN_CONSOLE 5" >>include/config.h
@echo "#define CONFIG_DELAY_TO_AUTORUN_NETCONSOLE 7" >>include/config.h

# max delay time for button pressing
@echo "#define CONFIG_MAX_BUTTON_PRESSING 10" >>include/config.h

# don't show info about console (in, out, err...)
@echo "#define CFG_CONSOLE_INFO_QUIET" >>include/config.h

@./mkconfig -a ap121 mips mips ap121 ar7240 ar7240

wr703n_config : unconfig hornet_common_config
@echo '======= Configuring for TL-WR703N at:' `date` '======='
@echo "#define CONFIG_PID_WR70301 1" >> include/config.h
@echo "#define GPIO_SYS_LED_BIT 27" >> include/config.h
@echo "#define GPIO_SYS_LED_ON 0" >> include/config.h
@echo "#define GPIO_RST_BUTTON_BIT 11" >> include/config.h
@echo "#define BOARD_CUSTOM_STRING \"AP121 (AR9331) U-Boot for TL-WR703N\"" >>include/config.h

wr720n_v3_CH_config : unconfig hornet_common_config
@echo '======= Configuring for TL-WR720N v3 CH at:' `date` '======='
@echo "#define CONFIG_PID_WR720N03CH 1" >> include/config.h
@echo "#define GPIO_SYS_LED_BIT 27" >> include/config.h
@echo "#define GPIO_SYS_LED_ON 0" >> include/config.h
@echo "#define GPIO_RST_BUTTON_BIT 11" >> include/config.h
@echo "#define BOARD_CUSTOM_STRING \"AP121 (AR9331) U-Boot for TL-WR720N v3 CH\"" >>include/config.h

mr3020_config : unconfig hornet_common_config
@echo '======= Configuring for TL-MR3020 at:' `date` '======='
@echo "#define CONFIG_PID_MR302001 1" >> include/config.h
@echo "#define GPIO_INTERNET_LED_BIT 27" >> include/config.h
@echo "#define GPIO_INTERNET_LED_ON 0" >> include/config.h
@echo "#define GPIO_WPS_LED_BIT 26" >> include/config.h
@echo "#define GPIO_WPS_LED_ON 0" >> include/config.h
@echo "#define GPIO_WLAN_LED_BIT 0" >> include/config.h
@echo "#define GPIO_WLAN_LED_ON 1" >> include/config.h
@echo "#define GPIO_ETH_LED_BIT 17" >> include/config.h
@echo "#define GPIO_ETH_LED_ON 0" >> include/config.h
@echo "#define GPIO_RST_BUTTON_BIT 11" >> include/config.h
@echo "#define BOARD_CUSTOM_STRING \"AP121 (AR9331) U-Boot for TL-MR3020\"" >>include/config.h

mr3040_config : unconfig hornet_common_config
@echo '======= Configuring for TL-MR3040 at:' `date` '======='
@echo "#define CONFIG_PID_MR304001 1" >> include/config.h
@echo "#define GPIO_INTERNET_LED_BIT 27" >> include/config.h
@echo "#define GPIO_INTERNET_LED_ON 0" >> include/config.h
@echo "#define GPIO_WLAN_LED_BIT 26" >> include/config.h
@echo "#define GPIO_WLAN_LED_ON 0" >> include/config.h
@echo "#define GPIO_ETH_LED_BIT 17" >> include/config.h
@echo "#define GPIO_ETH_LED_ON 0" >> include/config.h
@echo "#define GPIO_RST_BUTTON_BIT 11" >> include/config.h
@echo "#define BOARD_CUSTOM_STRING \"AP121 (AR9331) U-Boot for TL-MR3040\"" >>include/config.h

mr10u_config : unconfig hornet_common_config
@echo '======= Configuring for TL-MR10U at:' `date` '======='
@echo "#define CONFIG_PID_MR10U01 1" >> include/config.h
@echo "#define GPIO_SYS_LED_BIT 27" >> include/config.h
@echo "#define GPIO_SYS_LED_ON 0" >> include/config.h
@echo "#define GPIO_RST_BUTTON_BIT 11" >> include/config.h
@echo "#define BOARD_CUSTOM_STRING \"AP121 (AR9331) U-Boot for TL-MR10U\"" >>include/config.h

wr740n_v4_config : unconfig hornet_common_config
@echo '======= Configuring for TL-WR740N v4 at:' `date` '======='
@echo "#define CONFIG_PID_WR740N04 1" >> include/config.h
@echo "#define GPIO_SYS_LED_BIT 27" >> include/config.h
@echo "#define GPIO_SYS_LED_ON 0" >> include/config.h
@echo "#define GPIO_WLAN_LED_BIT 0" >> include/config.h
@echo "#define GPIO_WLAN_LED_ON 1" >> include/config.h
@echo "#define GPIO_LAN1_LED_BIT 14" >> include/config.h
@echo "#define GPIO_LAN1_LED_ON 1" >> include/config.h
@echo "#define GPIO_LAN2_LED_BIT 15" >> include/config.h
@echo "#define GPIO_LAN2_LED_ON 1" >> include/config.h
@echo "#define GPIO_LAN3_LED_BIT 16" >> include/config.h
@echo "#define GPIO_LAN3_LED_ON 1" >> include/config.h
@echo "#define GPIO_LAN4_LED_BIT 17" >> include/config.h
@echo "#define GPIO_LAN4_LED_ON 0" >> include/config.h
@echo "#define GPIO_INTERNET_LED_BIT 13" >> include/config.h
@echo "#define GPIO_INTERNET_LED_ON 1" >> include/config.h
@echo "#define GPIO_QSS_LED_BIT 1" >> include/config.h
@echo "#define GPIO_QSS_LED_ON 1" >> include/config.h
@echo "#define GPIO_RST_BUTTON_BIT 11" >> include/config.h
@echo "#define BOARD_CUSTOM_STRING \"AP121 (AR9331) U-Boot for TL-WR74xN/D v4\"" >>include/config.h

mr3220_v2_config : unconfig hornet_common_config
@echo '======= Configuring for TL-MR3220 v2 at:' `date` '======='
@echo "#define CONFIG_PID_MR322002 1" >> include/config.h
@echo "#define GPIO_SYS_LED_BIT 27" >> include/config.h
@echo "#define GPIO_SYS_LED_ON 0" >> include/config.h
@echo "#define GPIO_WLAN_LED_BIT 0" >> include/config.h
@echo "#define GPIO_WLAN_LED_ON 1" >> include/config.h
@echo "#define GPIO_LAN1_LED_BIT 14" >> include/config.h
@echo "#define GPIO_LAN1_LED_ON 1" >> include/config.h
@echo "#define GPIO_LAN2_LED_BIT 15" >> include/config.h
@echo "#define GPIO_LAN2_LED_ON 1" >> include/config.h
@echo "#define GPIO_LAN3_LED_BIT 16" >> include/config.h
@echo "#define GPIO_LAN3_LED_ON 1" >> include/config.h
@echo "#define GPIO_LAN4_LED_BIT 17" >> include/config.h
@echo "#define GPIO_LAN4_LED_ON 0" >> include/config.h
@echo "#define GPIO_INTERNET_LED_BIT 13" >> include/config.h
@echo "#define GPIO_INTERNET_LED_ON 1" >> include/config.h
@echo "#define GPIO_QSS_LED_BIT 1" >> include/config.h
@echo "#define GPIO_QSS_LED_ON 1" >> include/config.h
@echo "#define GPIO_USB_LED_BIT 26" >> include/config.h
@echo "#define GPIO_USB_LED_ON 1" >> include/config.h
@echo "#define GPIO_RST_BUTTON_BIT 11" >> include/config.h
@echo "#define BOARD_CUSTOM_STRING \"AP121 (AR9331) U-Boot for TL-MR3220 v2\"" >>include/config.h

#########################################################################
#########################################################################
#########################################################################

clean:
@echo Making $@
@find . -type f \
\( -name 'core' -o -name '*.bak' -o -name '*~' \
-o -name '*.o' -o -name '*.a' -o -name .depend \) -print \
| xargs rm -f
@rm -f examples/hello_world examples/timer \
examples/eepro100_eeprom examples/sched \
examples/mem_to_mem_idma2intr examples/82559_eeprom \
examples/smc91111_eeprom \
examples/test_burst
@rm -f tools/img2srec tools/mkimage tools/envcrc tools/gen_eth_addr
@rm -f tools/mpc86x_clk tools/ncb
@rm -f tools/easylogo/easylogo tools/bmp_logo
@rm -f tools/gdb/astest tools/gdb/gdbcont tools/gdb/gdbsend
@rm -f tools/env/fw_printenv tools/env/fw_setenv
@rm -f board/cray/L1/bootscript.c board/cray/L1/bootscript.image
@rm -f board/netstar/eeprom board/netstar/crcek
@rm -f board/netstar/*.srec board/netstar/*.bin
@rm -f board/trab/trab_fkt board/voiceblue/eeprom
@rm -f board/integratorap/u-boot.lds board/integratorcp/u-boot.lds
@rm -f lib_bootstrap/*.o
@rm -f lib_bootstrap/*.a
@rm -f bootstrap bootstrap.bin tuboot.bin u-boot.lzimg u-boot.bin.lzma bootstrap.map

clobber: clean
@echo Making $@
@find . -type f \( -name .depend \
-o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \
-print0 \
| xargs -0 rm -f
@rm -f $(OBJS) *.bak tags TAGS include/version_autogenerated.h
@rm -fr *.*~
@rm -f u-boot u-boot.map u-boot.hex $(ALL)
@rm -f tools/crc32.c tools/environment.c tools/env/crc32.c
@rm -f tools/inca-swap-bytes cpu/mpc824x/bedbug_603e.c
@rm -f include/asm/proc include/asm/arch include/asm

mrproper \
distclean: clobber unconfig

backup:
F=`basename $(TOPDIR)` ; cd .. ; \
gtar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F

#########################################################################
调用了顶层的mkconfig
$0 $1 $2 $3 $4 $5 $6 $7
./mkconfig -a ap121 mips mips ap121 ar7240 ar7240
下面是顶层mkconfig

#!/bin/sh -e

# Script to create header files and links to configure
# U-Boot for a specific board.
#
# Parameters: Target Architecture CPU Board [VENDOR] [SOC]
#
# (C) 2002 DENX Software Engineering, Wolfgang Denk
#

APPEND=no # Default: Create new config file

while [ $# -gt 0 ] ; do #输入的参数大于0,则循环。$#表示输入的参数个数,例如 ./test.sh 1 2 $# 为2
case "$1" in # shift表示位置参数可以用shift命令左移,shift 3表示原来的$4现在变成$1
--) shift ; break ;; #左移一位以后
-a) shift ; APPEND=yes ;; # $0 $1 $2 $3 $4 $5 $6
*) break ;; #./mkconfig ap121 mips mips ap121 ar7240 ar7240
esac # BOARD_NAME ARCH CPU BOARD VENDOR SOC
done

[ $# -lt 4 ] && exit 1 #如果左移一位输入的参数个数小于4 退出,大于6也退出
[ $# -gt 6 ] && exit 1

cd ./include #到/include目录中创建平台相关的头文件的链接

#
# Create link to architecture specific headers
#
rm -f asm
ln -s asm-$2 asm
rm -f asm-$2/arch

if [ -z "$6" -o "$6" = "NULL" ] ; then
ln -s arch-$3 asm-$2/arch
else
ln -s arch-$6 asm-$2/arch
fi

if [ "$2" = "arm" ] ; then
rm -f asm-$2/proc
ln -s proc-armv asm-$2/proc
fi

#
# Create include file for Make
#
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

#
# Create board specific header file
#
if [ "$APPEND" = "yes" ] # Append to existing config file
then
echo >> config.h
else
> config.h # Create new config file
fi
echo "/* Automatically generated - do not edit */" >>config.h
echo "#include " >>config.h

exit 0

上述分析以后:
include/config.h中生成:

#define CONFIG_AR7240 1
#define CONFIG_MACH_HORNET 1
#define CONFIG_HORNET_1_1_WAR 1
#define NEW_DDR_TAP_CAL 1
#define CONFIG_BOOTDELAY 1
#define CONFIG_DELAY_TO_AUTORUN_HTTPD 3
#define CONFIG_DELAY_TO_AUTORUN_CONSOLE 5
#define CONFIG_DELAY_TO_AUTORUN_NETCONSOLE 7
#define CONFIG_MAX_BUTTON_PRESSING 10
#define CFG_CONSOLE_INFO_QUIET

/* Automatically generated - do not edit */
#include
#define CONFIG_PID_MR322002 1
#define GPIO_SYS_LED_BIT 27
#define GPIO_SYS_LED_ON 0
#define GPIO_WLAN_LED_BIT 0
#define GPIO_WLAN_LED_ON 1
#define GPIO_LAN1_LED_BIT 14
#define GPIO_LAN1_LED_ON 1
#define GPIO_LAN2_LED_BIT 15
#define GPIO_LAN2_LED_ON 1
#define GPIO_LAN3_LED_BIT 16
#define GPIO_LAN3_LED_ON 1
#define GPIO_LAN4_LED_BIT 17
#define GPIO_LAN4_LED_ON 0
#define GPIO_INTERNET_LED_BIT 13
#define GPIO_INTERNET_LED_ON 1
#define GPIO_QSS_LED_BIT 1
#define GPIO_QSS_LED_ON 1
#define GPIO_USB_LED_BIT 26
#define GPIO_USB_LED_ON 1
#define GPIO_RST_BUTTON_BIT 11
#define BOARD_CUSTOM_STRING "AP121 (AR9331) U-Boot for TL-MR3220 v2"

本文转自:onejacky的专栏

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多