?? makefile
字號:
$(CC) $(CFLAGS) $(SFLAGS) -DSETUP_AND_STALL -c -o setup1of2.o head_omap1510.S $(CC) $(CFLAGS) $(SFLAGS) -DSETUP_AND_STALL -c -o setup2of2.o sdram_omap1510.S $(LD) -Ttext 0x10000000 -e 0x10000000 setup1of2.o setup2of2.o -o $@ @$(OBJCOPY) --strip-all $@ $@.out$(L_SCRIPT_1): $(L_TEMPLATE_1) @cat $(L_TEMPLATE_1) | \ sed -e "s/XXRRLOADADDRESSXX/$(BSPCONF_BTLDR_SDRAM_START)/g" \ >$(L_SCRIPT_1)rrload: setup $(L_SCRIPT_1) $(RRLOAD_LIST) rrload.ForUpgrade @rm -f $@ $@.out $(LD) -T $(L_SCRIPT_1) $(RRLOAD_LIST) -o rrload #@$(OBJCOPY) --strip-all $@ $@.out $(NM) rrload | grep -v '\(compiled\)\|\(\.o$$\)\|\( a \)' | sort > rrload.map$(L_SCRIPT_2): $(L_TEMPLATE_2) @cat $(L_TEMPLATE_2) | \ sed -e "s/XXRRLOADADDRESSXX/$(BSPCONF_BTLDR_SDRAM_START)/g;s/XXUPGRADEADDRESSXX/$(BSPCONF_BTLDR_SDRAM_END)/g" \ >$(L_SCRIPT_2)rrload.ForUpgrade: setup $(L_SCRIPT_2) $(RRLOAD_LIST) @rm -f $@ $(LD) -T $(L_SCRIPT_2) $(RRLOAD_LIST) -o rrload.ForUpgradeendififeq ($(BSPCONF_ARCH),dm310)setup: head_dm310.S @rm -f $@ $@.out setup.o $(CC) $(CFLAGS) $(SFLAGS) -DSETUP_AND_STALL -c -o setup.o head_dm310.S $(LD) -Ttext 0x00000004 -e 0x00000004 setup.o -o $@ @$(OBJCOPY) --strip-all $@ $@.outmsetup: head_dm310.S @rm -f $@ $@.out msetup.o $(CC) $(CFLAGS) $(SFLAGS) -DSETUP_AND_STALL -DENABLE_MEMTEST \ -c -o msetup.o head_dm310.S $(LD) -Ttext 0x00000004 -e 0x00000004 msetup.o -o $@ @$(OBJCOPY) --strip-all $@ $@.out$(L_SCRIPT_1): $(L_TEMPLATE_1)ifeq ($(BSPCONF_KERNEL_PARMS),$(BSPCONF_BTLDR_SDRAM_START)) @cat $(L_TEMPLATE_1) | \ sed -e "s/XXKPARMADDRESSXX/$(BSPCONF_KERNEL_PARMS)/g;\ s/XXRRLOADADDRESSXX/$(BSPCONF_BTLDR_SDRAM_START) + 0x00000180/g;\ s/XXFORUPGRADEXX/0x0/g" \ >$(L_SCRIPT_1)else @cat $(L_TEMPLATE_1) | \ sed -e "s/XXKPARMADDRESSXX/$(BSPCONF_KERNEL_PARMS)/g;\ s/XXRRLOADADDRESSXX/$(BSPCONF_BTLDR_SDRAM_START)/g; \ s/XXFORUPGRADEXX/0x0/g" \ >$(L_SCRIPT_1)endifrrload: setup msetup $(L_SCRIPT_1) $(RRLOAD_LIST) rrload.ForUpgrade @rm -f $@ $@.out $(LD) -T $(L_SCRIPT_1) $(RRLOAD_LIST) -o rrload #@$(OBJCOPY) --strip-all $@ $@.out $(NM) rrload | grep -v '\(compiled\)\|\(\.o$$\)\|\( a \)' | sort > rrload.map$(L_SCRIPT_2): $(L_TEMPLATE_2) @cat $(L_TEMPLATE_2) | \ sed -e "s/XXKPARMADDRESSXX/$(BSPCONF_KERNEL_PARMS)/g;\ s/XXRRLOADADDRESSXX/$(BSPCONF_BTLDR_SDRAM_END)/g;\ s/XXFORUPGRADEXX/0x1/g" \ >$(L_SCRIPT_2)rrload.ForUpgrade: setup msetup $(L_SCRIPT_2) $(RRLOAD_LIST) @rm -f $@ $(LD) -T $(L_SCRIPT_2) $(RRLOAD_LIST) -o rrload.ForUpgradeendififeq ($(BSPCONF_ARCH),omap710)rrload_base.o: $(BASE_OBJECTS) @rm -f $@ @# Next, make the *intermediate* bootloader product. $(AR) rcs rrload_base.o $(BASE_OBJECTS)do_export: $(EXPORT_LIST) @if [ ! -d export ] ; then \ mkdir export; \ fi @for export_obj in $(EXPORT_LIST); do \ cp $$export_obj export/.; \ chmod a+w export/$$export_obj; \ done @mv export/$(EXPORT_MAKE) export/Makefileifeq (temporary,temporary)# !!!!!!!!!!!!!!!!# *revisit-skranz* This block of targets is temporarily being# used instead of the exports/Makefile. See "else"# !!!!!!!!!!!!!!!!setup: setup_omap710.o @rm -f $@ $@.out $(LD) -Ttext 0x20000000 -e 0x20000000 $^ -o $@ @$(OBJCOPY) --strip-all $@ $@.outrrload.ForUpgrade: $(BASE_OBJECTS) $(DRV_OBJECTS) ld.omap710.ForUpgrade.script @#This is all described in Appendix_A of this Makefile. @rm -f $@ $(LD) -T ld.omap710.ForUpgrade.script $(BASE_OBJECTS) $(DRV_OBJECTS) -o $@rrload: do_export rrload.ForUpgrade setup $(BASE_OBJECTS) $(DRV_OBJECTS) ld.omap710.script @rm -f $@ $@.out $(LD) -T ld.omap710.script $(BASE_OBJECTS) $(DRV_OBJECTS) -o $@ @$(OBJCOPY) --strip-all $@ $@.out @if [ -f rrload.ForUpgrade ] ; then \ if [ -f rrload ] ; then \ echo "---------------" ; \ echo "--- SUCCESS ---" ; \ echo "---------------" ; \ fi \ fielse# !!!!!!!!!!!!!!!!# *revisit-skranz* Long term get this block of targets# to work for omap710. Currently it does not work without# complaining about unresolved symbol util_printf() which # just doesn't make sense -- come back to this later prior # to actually shipping a 710 BSP. Also, I really think# the logic associated with -DREPLACE_VECTOR_TABLE needs# to be revisited. I think that it should have been done# like the c547x EVM handles flash based interrupt vectors.# This all might be related to my link errors mentioned # above.# SKranz Nov 2001.# !!!!!!!!!!!!!!!!rrload: do_export @# Next, make the *final* bootloader product. (cd export; make) @# Next, for developer convenience only, we'll @# copy a few things up from the export directory @# so they are readily available to the RR developer. @cp export/rrload .endifendififeq ($(BSPCONF_ARCH),dsc21)setup: setup_dsc21.o @rm -f $@ $@.out @# Use IRAM to hold setup since it is always mapped to @# the same hardware address. $(LD) -Ttext 0x00000010 -e 0x00000010 setup_dsc21.o -o $@ @$(OBJCOPY) --strip-all $@ $@.outdo_export: $(EXPORT_LIST) @if [ ! -d export ] ; then \ mkdir export; \ fi @for export_obj in $(EXPORT_LIST); do \ cp $$export_obj export/.; \ chmod a+w export/$$export_obj; \ done @mv export/$(EXPORT_MAKE) export/Makefilerrload: setup $(RRLOAD_LIST) rrload.ForUpgrade @rm -f $@ $@.out $(LD) -T ld.dsc21.script $(RRLOAD_LIST) -o rrload @$(OBJCOPY) --strip-all $@ $@.out $(NM) rrload | grep -v '\(compiled\)\|\(\.o$$\)\|\( a \)' | sort > rrload.maprrload.ForUpgrade: setup $(RRLOAD_LIST) @rm -f $@ $(LD) -T ld.dsc21.ForUpgrade.script $(RRLOAD_LIST) -o rrload.ForUpgradeendififeq ($(BSPCONF_ARCH),c5471)setup: head_c5471.S sdram_c5471.S @# 0x00800000 is the start of sram for c547x when the @# board jumper is set to present sram instead of flash. @# at that address (flash would then be presented at the @# reset vector -- 0x00000000). @rm -f $@ $@.out setup1of2.o setup2of2.o $(CC) $(CFLAGS) $(SFLAGS) -DSETUP_AND_STALL -c -o setup1of2.o head_c5471.S $(CC) $(CFLAGS) $(SFLAGS) -DSETUP_AND_STALL -c -o setup2of2.o sdram_c5471.Sifeq (1,1) @# h/w setup loaded to IRAM $(LD) -Ttext 0xffc00000 -e 0xffc00000 \ -defsym __stack_start=0xffc03f00 \ -defsym __bss_start=0xdeadbeef \ -defsym __bss_end=0xdeadbeef \ setup1of2.o setup2of2.o -o $@ @$(OBJCOPY) --strip-all $@ $@.outelse @# h/w setup loaded to SRAM $(LD) -Ttext 0x00800000 -e 0x00800000 \ -defsym __stack_start=0xffc03f00 \ -defsym __bss_start=0xdeadbeef \ -defsym __bss_end=0xdeadbeef \ setup1of2.o setup2of2.o -o $@ @$(OBJCOPY) --strip-all $@ $@.outendifrrload: setup $(RRLOAD_LIST) rrload.ForUpgrade @rm -f $@ $@.out $(LD) -T $(L_SCRIPT_1) $(RRLOAD_LIST) -o rrload @$(OBJCOPY) --strip-all $@ $@.out $(NM) rrload | grep -v '\(compiled\)\|\(\.o$$\)\|\( a \)' | sort > rrload.maprrload.ForUpgrade: setup $(RRLOAD_LIST) @rm -f $@ $(LD) -T $(L_SCRIPT_2) $(RRLOAD_LIST) -o rrload.ForUpgradeendififeq ($(BSPCONF_ARCH),dsc24)setup: setup_dsc24.o hwinit_dsc24.o @rm -f $@ $@.out $(LD) -Ttext 0x00000004 -e 0x00000004 setup_dsc24.o hwinit_dsc24.o -o $@ @$(OBJCOPY) --strip-all $@ $@.outrrload: setup $(RRLOAD_LIST) rrload.ForUpgrade @rm -f $@ $@.out $(LD) -T ld.dsc24.script $(RRLOAD_LIST) -o rrload @$(OBJCOPY) --strip-all $@ $@.out $(NM) rrload | grep -v '\(compiled\)\|\(\.o$$\)\|\( a \)' | sort > rrload.maprrload.ForUpgrade: setup $(RRLOAD_LIST) @rm -f $@ $(LD) -T ld.dsc24.ForUpgrade.script $(RRLOAD_LIST) -o rrload.ForUpgradeendififeq ($(BSPCONF_ARCH),dsc25)setup: setup_dsc25.o hwinit_dsc25.o @rm -f $@ $@.out @# Use IRAM to hold setup since it is always mapped to @# the same hardware address. $(LD) -Ttext 0x00000004 -e 0x00000004 setup_dsc25.o hwinit_dsc25.o -o $@ @$(OBJCOPY) --strip-all $@ $@.outrrload: setup $(RRLOAD_LIST) rrload.ForUpgrade @rm -f $@ $@.out $(LD) -T ld.dsc25.script $(RRLOAD_LIST) -o rrload @$(OBJCOPY) --strip-all $@ $@.out $(NM) rrload | grep -v '\(compiled\)\|\(\.o$$\)\|\( a \)' | sort > rrload.maprrload.ForUpgrade: setup $(RRLOAD_LIST) @rm -f $@ $(LD) -T ld.dsc25.ForUpgrade.script $(RRLOAD_LIST) -o rrload.ForUpgradeendififeq ($(BSPCONF_ARCH),dm270)setup: setup_dm270.o hwinit_dm270.o @rm -f $@ $@.out @# Use IRAM to hold setup since it is always mapped to @# the same hardware address. $(LD) -Ttext 0x00000004 -e 0x00000004 setup_dm270.o hwinit_dm270.o -o $@ @$(OBJCOPY) --strip-all $@ $@.outrrload: setup $(RRLOAD_LIST) rrload.ForUpgrade @rm -f $@ $@.out $(LD) -T ld.dm270.script $(RRLOAD_LIST) -o rrload @$(OBJCOPY) --strip-all $@ $@.out $(NM) rrload | grep -v '\(compiled\)\|\(\.o$$\)\|\( a \)' | sort > rrload.maprrload.ForUpgrade: setup $(L_SCRIPT_2) $(RRLOAD_LIST) @rm -f $@ $(LD) -T $(L_SCRIPT_2) $(RRLOAD_LIST) -o rrload.ForUpgrade$(L_SCRIPT_2): $(L_TEMPLATE_2) @cat $(L_TEMPLATE_2) | \ sed -e "s/XXUPGRADEADDRESSXX/$(BSPCONF_KERNEL_SDRAM_START)/g" \ >$(L_SCRIPT_2)endififeq ($(BSPCONF_ARCH),ti925)rrload_base.o: $(BASE_OBJECTS) @rm -f $@ @# Next, make the *intermediate* bootloader product. $(AR) rcs rrload_base.o $(BASE_OBJECTS)do_export: $(EXPORT_LIST) @if [ ! -d export ] ; then \ mkdir export; \ fi @for export_obj in $(EXPORT_LIST); do \ cp $$export_obj export/.; \ chmod a+w export/$$export_obj; \ done @mv export/$(EXPORT_MAKE) export/Makefilerrload: do_export @# Next, make the *final* bootloader product. (cd export; make) @# Next, for developer convenience only, we'll @# copy a few things up from the export directory @# so they are readily available to the RR developer. @cp export/rrload .endif################################# --Appendix_A-- Performing rrload Upgrades# # The makefile of the rrload project automatically# creates two rrload images which are absolutely# identical to one another except they are built to run# at different locations within the memory map. This# allows both instances of rrload to reside in memory# simultaneously without conflicting with each# other. The main instance is called "rrload" and is# usually the only instance loaded into memory; the# second instance is called "rrload.ForUpgrade". The# purpose of the "rrload.ForUpgrade" object is to help# provide the rrload user with the ability to upgrade an# existing rrload installation without the use of# JTAG. The reason this is useful is to allow the# following steps to occur for the user who wishes to# upgrade an old instance of rrload with a newer version# (again, without using JTAG). Assuming the user has# rrload in command line mode, these steps could# accomplish the upgrade. (Use this as a overview; the# most recent process is documented in the rrload# User Manual).# # Stage 1:# rrload> set kpath rrload.ForUpgrade.rr# rrload> copy -c kernel -s ether -d ram -f rrbin# rrload> boot# # Note: We've used the "load kernel" path to sneak# in the second instance of rrload. Then we booted it.# At this point the second instance of rrload should # be running and we'll use it to perform the upgrade.# The ram location previously used for rrload is now # available so we can now download the new version of # rrload to fill that spot.# # Stage 2:# rrload> set kpath rrload.rr# rrload> copy -c kernel -s ether -d ram -f rrbin# rrload> boot# # Note: okay, now we've got the new version# in memory and we are running it. The only# thing left to do is to use the normal rrload# commands to flash itself persistently.# # Stage3:# rrload> eraseflash bootldr# rrload> copy -c bootldr -s ram -d flash -f na# # Note: All done. The rrload bootloader has# been upgraded and is stored persistently.## Note1: Although this example performed the image# "loads" via ethernet, it could just as well been# performed using one of the other I/O ports.# # Note2: Although this example assumed rrload comnand line# mode, it could just as well have been performed# using rrload's menu based UI. Recall that the# rrlaod UI lets you switch between menu mode and# command line mode at runtime.################################# This must be the last line of the file.# This line is a bit of magic that works together with the# -MD options of gcc to dynamically create a makefile dependency # list for the *.c being processed. Insures that if a *.h used# by that *.c changes, then the makefile will rebuild the *.c# being processed. Prevents us from having to explicitly itemize# the header dependency of each *.c (For more info, search the # `info` pages of `make` for the string "-MD").-include *.d
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -