ÉèÖòÎÊý£º/uboot/include/configs/smdk6410.h
ʵ¼Ê²Ù×÷£º/uboot/cpu/s3c6410/cpu_init.s
¶ÔÓÚARM¶øÑÔ£¬Ö÷ÒªµÄĿ¼ÈçÏ£º
board ƽ̨ÒÀÀµ ´æ·Åµç·°åÏà¹ØµÄĿ¼Îļþ,ÿһÌ×°å×Ó¶Ô Ó¦Ò»¸öĿ¼¡£ÈçARMEasy6410 (arm1176)
cpu ƽ̨ÒÀÀµ ´æ·ÅCPUÏà¹ØµÄĿ¼Îļþ£¬Ã¿Ò»¿îCPU¶ÔÓ¦Ò»¸öĿ¼£¬ÀýÈ磺arm920t¡¢ xscale¡¢s3c64xxµÈĿ¼
lib_arm ƽ̨ÒÀÀµ ´æ·Å¶ÔARMÌåϵ½á¹¹Í¨ÓõÄÎļþ£¬Ö÷ÒªÓÃÓÚʵÏÖARMƽ̨ͨÓõĺ¯Êý£¬ÈçÈí¼þ¸¡µã¡£
common ͨÓà ͨÓõĶ๦Äܺ¯ÊýʵÏÖ£¬Èç»·¾³£¬ÃüÁ¿ØÖÆÌ¨Ïà¹ØµÄº¯ÊýʵÏÖ¡£
include ͨÓà ͷÎļþºÍ¿ª·¢°åÅäÖÃÎļþ£¬ËùÓпª·¢°åµÄÅäÖÃÎļþ¶¼ÔÚconfigsĿ¼ÏÂ
lib_generic ͨÓà ͨÓÿ⺯ÊýµÄʵÏÖ
net ͨÓà ´æ·ÅÍøÂçÐÒéµÄ³ÌÐò
drivers ͨÓà ͨÓõÄÉ豸Çý¶¯³ÌÐò£¬Ö÷ÒªÓÐÒÔÌ«Íø½Ó¿ÚµÄÇý¶¯£¬nandÇý¶¯¡£
.......
ËùÓÐÕâЩĿ¼µÄ±àÒëÁ¬½Ó¶¼ÊÇÓɶ¥²ãĿ¼µÄmakefileÀ´È·¶¨µÄ¡£
ÔÚÖ´ÐÐmake֮ǰ£¬ÏÈÒªÖ´ÐÐmake $(board)_config ¶Ô¹¤³Ì½øÐÐÅäÖã¬ÒÔÈ·¶¨Ìض¨ÓÚÄ¿±ê°åµÄ¸÷¸ö×ÓĿ¼ºÍÍ·Îļþ¡£
$(board)_config:ÊÇmakefile ÖеÄÒ»¸öαĿ±ê£¬Ëü´«ÈëÖ¸¶¨µÄCPU£¬ARCH£¬BOARD£¬SOC²ÎÊýÈ¥Ö´ÐÐmkconfig½Å±¾¡£Õâ¸ö½Å±¾µÄÖ÷Òª¹¦ÄÜÔÚÓÚÁ¬½ÓÄ¿±ê°åƽ̨Ïà¹ØµÄÍ·Îļþ¼Ð£¬Éú³Éconfig.hÎļþ°üº¬°å×ÓµÄÅäÖÃÍ·Îļþ¡£Ê¹µÃmakefileÄܸù¾ÝÄ¿±ê°åµÄÕâЩ²ÎÊýÈ¥±àÒëÕýÈ·µÄƽ̨Ïà¹ØµÄ×ÓĿ¼¡£
¡ï½âÎö£ºÔÚ±àÒëU£BOOT֮ǰ£¬ÏÈÒªÖ´ÐÐ
ARMEasy6410_sd_configÊÇMakefileµÄÒ»¸öÄ¿±ê£¬¶¨ÒåÈçÏ£º
È»ºó²ÅÖ´ÐÐÃüÁî
MKCONFIG ÊǶ¥²ãĿ¼ÏµÄmkcofig½Å±¾Îļþ£¬ºóÃæÎå¸öÊÇ´«ÈëµÄ²ÎÊý¡£
¶ÔÓÚARMEasy6410_sd_config¶øÑÔ£¬mkconfigÖ÷Òª×öÈý¼þÊ£º
@1ÔÚincludeÎļþ¼ÐϽ¨Á¢ÏàÓ¦µÄÎļþ£¨¼Ð£©ÈíÁ¬½Ó£¬
#Èç¹ûÊÇARMÌåϵ½«Ö´ÐÐÒÔϲÙ×÷£º
@2Éú³ÉMakefile°üº¬Îļþinclude/config.mk£¬ÄÚÈݺܼòµ¥£¬¶¨ÒåÁËËĸö±äÁ¿£º
@3Éú³Éinclude/config.hÍ·Îļþ£º
¡ï°üº¬include/config.mk£¬ÆäʵҲ¾ÍÏ൱ÓÚÔÚMakefileÀﶨÒåÁËÉÏÃæËĸö±äÁ¿¶øÒÑ¡£
¡ïÖ¸¶¨½»²æ±àÒëÆ÷ǰ׺£º
¡ï°üº¬config.mk:
#°üº¬¶¥²ãĿ¼ÏµÄconfig.mk£¬Õâ¸öÎļþÀïÃæÖ÷Òª¶¨ÒåÁ˽»²æ±àÒëÆ÷¼°Ñ¡ÏîºÍ±àÒë¹æÔò
·ÖÎöconfig.mkµÄÄÚÈÝ£º
£À°üº¬Ìåϵ£¬¿ª·¢°å£¬CPUÌØ¶¨µÄ¹æÔòÎļþ£º
£À¶¨ÒåARÑ¡ÏîARFLAGS£¬µ÷ÊÔÑ¡ÏîDBGFLAGS£¬ÓÅ»¯Ñ¡ÏîOPTFLAGS
Ô¤´¦ÀíÑ¡ÏîCPPFLAGS£¬C±àÒëÆ÷Ñ¡ÏîCFLAGS£¬Á¬½ÓÑ¡ÏîLDFLAGS
LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS) #Ö¸¶¨ÁËÆðʼµØÖ·TEXT_BASE
£ÀÖ¸¶¨±àÒë¹æÔò£º
$(obj)%.s: %.S
$(CPP) $(AFLAGS) -o $@ $<
$(obj)%.o: %.S
$(CC) $(AFLAGS) -c -o $@ $<
$(obj)%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
»Øµ½¶¥²ãmakefileÎļþ£º
¡ïU-bootÐèÒªµÄÄ¿±êÎļþ¡£
OBJS = cpu/$(CPU)/start.o # ˳ÐòºÜÖØÒª£¬start.o±ØÐë·ÅµÚһλ
¡ïÐèÒªµÄ¿âÎļþ£º
LIBS = lib_generic/libgeneric.a
LIBS += board/$(BOARDDIR)/lib$(BOARD).a
LIBS += cpu/$(CPU)/lib$(CPU).a
ifdef SOC
LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a
endif
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/sk98lin/libsk98lin.a
LIBS += post/libpost.a post/cpu/libcpu.a
LIBS += common/libcommon.a
LIBS += $(BOARDLIBS)
LIBS := $(addprefix $(obj),$(LIBS))
.PHONY : $(LIBS)
¡ï×îÖÕÉú³ÉµÄ¸÷ÖÖ¾µÏñÎļþ£º
·ÖÎöÒ»ÏÂ×î¹Ø¼üµÄu-boot ELFÎļþ¾µÏñµÄÉú³É£º
@ÒÀÀµÄ¿±êdepend :Éú³É¸÷¸ö×ÓĿ¼µÄ.dependÎļþ£¬.dependÁгöÿ¸öÄ¿±êÎļþµÄÒÀÀµÎļþ¡£Éú³É·½·¨£¬µ÷ÓÃÿ¸ö×ÓĿ¼µÄmake _depend¡£
depend dep:
for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir _depend ; done
@ÒÀÀµÄ¿±êversion£ºÉú³É°æ±¾ÐÅÏ¢µ½°æ±¾ÎļþVERSION_FILEÖС£
@αĿ±êSUBDIRS: Ö´ÐÐtools ,examples ,post,post\cpu ×ÓĿ¼ÏÂÃæµÄmakeÎļþ¡£
@ÒÀÀµÄ¿±ê$(LIBS)£¬Õâ¸öÄ¿±êÌ«¶à£¬¶¼ÊÇÿ¸ö×ÓĿ¼µÄ¿âÎļþ*.a £¬Í¨¹ýÖ´ÐÐÏàÓ¦×ÓĿ¼ÏµÄmakeÀ´Íê³É£º
$(LIBS):
$(MAKE) -C $(dir $(subst $(obj),,$@))
@ÒÀÀµÄ¿±ê$(LDSCRIPT)£º
LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
¶ÔÓÚARMeasy6410,LDSCRIPT¼´Á¬½Ó½Å±¾ÎļþÊÇ\board\samsung\ARMEasy6410/u-boot.lds£¬¶¨ÒåÁËÁ¬½Óʱ¸÷¸öÄ¿±êÎļþÊÇÈçºÎ×éÖ¯µÄ¡£ÄÚÈÝÈçÏ£º
Æäʵ¾ÍÊǰÑstart.oºÍ¸÷¸ö×ÓĿ¼makefileÉú³ÉµÄ¿âÎļþ°´ÕÕLDFLAGSÁ¬½ÓÔÚÒ»Æð£¬Éú³ÉELFÎļþu-boot ºÍÁ¬½ÓʱÄÚ´æ·ÖÅäͼÎļþu-boot.map¡£
¶ÔÓÚ¸÷×ÓĿ¼µÄmakefileÎļþ£¬Ö÷ÒªÊÇÉú³É*.oÎļþÈ»ºóÖ´ÐÐARÉú³É¶ÔÓ¦µÄ¿âÎļþ¡£Èçlib_genericÎļþ¼ÐMakefile£º
¸ÅÀ¨ÆðÀ´£¬¹¤³ÌµÄ±àÒëÁ÷³ÌÒ²¾ÍÊÇͨ¹ýÖ´ÐÐÒ»¸ömake *_config´«ÈëARCH£¬CPU£¬BOARD£¬SOC²ÎÊý£¬mkconfig¸ù¾Ý²ÎÊý½«includeÍ·Îļþ¼ÐÏàÓ¦µÄÍ·Îļþ¼ÐÁ¬½ÓºÃ£¬Éú³Éconfig.h¡£È»ºó