diff options
Diffstat (limited to 'demos/ARM7-AT91SAM7X-WEB-GCC')
| -rw-r--r-- | demos/ARM7-AT91SAM7X-WEB-GCC/Makefile | 273 | ||||
| -rw-r--r-- | demos/ARM7-AT91SAM7X-WEB-GCC/Makefile.thumb | 233 | 
2 files changed, 103 insertions, 403 deletions
diff --git a/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile b/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile index 74146d985..20d44a9d5 100644 --- a/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile +++ b/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile @@ -1,55 +1,34 @@ +##############################################################################
 +# Build global options
 +# NOTE: Can be overridden externally.
  #
 -#       !!!! Do NOT edit this makefile with an editor which replace tabs by spaces !!!!
 -#
 -##############################################################################################
 -#
 -# On command line:
 -#
 -# make all = Create project
 -#
 -# make clean = Clean project files.
 -#
 -# To rebuild project do "make clean" and "make all".
 -#
 -
 -##############################################################################################
 -# Start of default section
 -#
 -
 -TRGT = arm-elf-
 -CC   = $(TRGT)gcc
 -CP   = $(TRGT)objcopy
 -AS   = $(TRGT)gcc -x assembler-with-cpp
 -OD   = $(TRGT)objdump
 -HEX  = $(CP) -O ihex
 -BIN  = $(CP) -O binary
 -MCU  = arm7tdmi
 +# Compiler options here.
 +ifeq ($(USE_OPT),)
 +  USE_OPT = -O2 -ggdb -fomit-frame-pointer -mabi=apcs-gnu 
 +endif
  # Enable this if you want the linker to remove unused code and data
 -LINK_GC = yes
 -
 -# List all default C defines here, like -D_DEBUG=1
 -DDEFS =
 -
 -# List all default ASM defines here, like -D_DEBUG=1
 -DADEFS =
 -
 -# List all default directories to look for include files here
 -DINCDIR =
 +ifeq ($(USE_LINK_GC),)
 +  USE_LINK_GC = yes
 +endif
 -# List the default directory to look for the libraries here
 -DLIBDIR =
 +# If enabled, this option allows to compile the application in THUMB mode.
 +ifeq ($(USE_THUMB),)
 +  USE_THUMB = no
 +endif
 -# List all default libraries here
 -DLIBS =
 +# Enable register caching optimization (read documentation).
 +ifeq ($(USE_CURRP_CACHING),)
 +  USE_CURRP_CACHING = no
 +endif
  #
 -# End of default section
 -##############################################################################################
 +# Build global options
 +##############################################################################
 -##############################################################################################
 -# Start of user section
 +##############################################################################
 +# Project, sources and paths
  #
  # Define project name here
 @@ -58,12 +37,6 @@ PROJECT = ch  # Define linker script file here
  LDSCRIPT= ch.ld
 -# List all user C define here, like -D_DEBUG=1
 -UDEFS =
 -
 -# Define ASM defines here
 -UADEFS =
 -
  # Imported source files
  include ../../src/kernel.mk
  include ../../test/test.mk
 @@ -77,156 +50,116 @@ USRC = ../../ext/uip-1.0/uip/uip_arp.c \         ../../ext/uip-1.0/apps/webserver/httpd-fs.c \
         ../../ext/uip-1.0/apps/webserver/httpd-cgi.c
 -# List ARM-mode C source files here
 -ASRC = ../../ports/ARM7/chcore.c \
 -       ../../ports/ARM7-AT91SAM7X/sam7x_serial.c \
 -       ../../ports/ARM7-AT91SAM7X/sam7x_emac.c \
 -       ${KERNSRC} \
 -       ${TESTSRC} \
 -       ${USRC} \
 -       ../../src/lib/evtimer.c \
 -       at91lib/aic.c \
 -       web/webthread.c \
 -       board.c main.c
 -
 -# List THUMB-mode C sources here
 -# NOTE: If any module is compiled in thumb mode then -mthumb-interwork is
 -#       enabled for all modules and that lowers performance.
 +# Sources that can be compiled in ARM or THUMB mode depending on the global
 +# setting.
 +SRC = ../../ports/ARM7/chcore.c \
 +      ../../ports/ARM7-LPC214x/vic.c  \
 +      ../../ports/ARM7-AT91SAM7X/sam7x_serial.c \
 +      ../../ports/ARM7-AT91SAM7X/sam7x_emac.c \
 +      ${KERNSRC} \
 +      ${TESTSRC} \
 +      ${USRC} \
 +      ../../src/lib/evtimer.c \
 +      at91lib/aic.c \
 +      web/webthread.c \
 +      board.c main.c
 +
 +# Sources to be compiled in ARM mode regardless of the global setting.
 +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
 +#       option that results in lower performance and larger code size.
 +ASRC =
 +
 +# Sources to be compiled in THUMB mode regardless of the global setting.
 +# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
 +#       option that results in lower performance and larger code size.
  TSRC =
  # List ASM source files here
 -ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chcoreasm.s \
 -         ../../ports/ARM7-AT91SAM7X/vectors.s
 +ASMSRC = ../../ports/ARM7/crt0.s \
 +         ../../ports/ARM7-AT91SAM7X/vectors.s \
 +         ../../ports/ARM7/chcoreasm.s
 -# List all user directories here
 -UINCDIR = ../../src/include ../../src/lib ../../test \
 -          ../../ports/ARM7 ../../ports/ARM7-AT91SAM7X \
 -          ./web ../../ext/uip-1.0/uip ../../ext/uip-1.0/apps/webserver
 +INCDIR = $(KERNINC) $(TESTINC) \
 +         ../../src/lib \
 +         ../../ports/ARM7 \
 +         ../../ports/ARM7-AT91SAM7X \
 +         ./web ../../ext/uip-1.0/uip ../../ext/uip-1.0/apps/webserver
 -# List the user directory to look for the libraries here
 -ULIBDIR =
 +#
 +# Project, sources and paths
 +##############################################################################
 -# List all user libraries here
 -ULIBS =
 +##############################################################################
 +# Compiler settings
 +#
 +
 +MCU  = arm7tdmi
 +
 +TRGT = arm-elf-
 +CC   = $(TRGT)gcc
 +CP   = $(TRGT)objcopy
 +AS   = $(TRGT)gcc -x assembler-with-cpp
 +OD   = $(TRGT)objdump
 +HEX  = $(CP) -O ihex
 +BIN  = $(CP) -O binary
  # ARM-specific options here
  AOPT =
  # THUMB-specific options here
 -TOPT = -mthumb -D THUMB
 -
 -# Common options here
 -# NOTE: -ffixed-r7 is only needed if you enabled CH_CURRP_REGISTER_CACHE in
 -#       chconf.h.
 -# NOTE: -falign-functions=16 may improve the performance, not always, but
 -#       increases the code size.
 -OPT = -O2 -ggdb -fomit-frame-pointer -mabi=apcs-gnu
 -#OPT += -ffixed-r7
 -#OPT += -falign-functions=16
 +TOPT = -mthumb -DTHUMB
  # Define warning options here
  WARN = -Wall -Wstrict-prototypes
  #
 -# End of user defines
 -##############################################################################################
 -
 -ifeq ($(LINK_GC),yes)
 -  OPT += -ffunction-sections -fdata-sections
 -endif
 +# Compiler settings
 +##############################################################################
 -INCDIR  = $(patsubst %,-I%,$(DINCDIR) $(UINCDIR))
 -LIBDIR  = $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR))
 -DEFS    = $(DDEFS) $(UDEFS)
 -ADEFS   = $(DADEFS) $(UADEFS)
 -AOBJS   = $(ASRC:.c=.o)
 -TOBJS   = $(TSRC:.c=.o)
 -OBJS	= $(ASMOBJS) $(AOBJS) $(TOBJS)
 -ASMOBJS = $(ASMSRC:.s=.o)
 -LIBS    = $(DLIBS) $(ULIBS)
 -MCFLAGS = -mcpu=$(MCU)
 -
 -ODFLAGS	= -x --syms
 -ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(<:.s=.lst) $(ADEFS)
 -CPFLAGS = $(MCFLAGS) $(OPT) $(WARN) -Wa,-alms=$(<:.c=.lst) $(DEFS)
 -LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR)
 -ifeq ($(LINK_GC),yes)
 -  LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch,--gc-sections $(LIBDIR)
 -else
 -  LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR)
 -endif
 +##############################################################################
 +# Start of default section
 +#
 -# Thumb interwork enabled only if needed because it kills performance.
 -ifneq ($(TSRC),)
 -  CPFLAGS += -D THUMB_PRESENT
 -  ASFLAGS += -D THUMB_PRESENT
 -  ifneq ($(ASRC),)
 -    # Mixed ARM and THUMB case.
 -    CPFLAGS += -mthumb-interwork
 -    LDFLAGS += -mthumb-interwork
 -  else
 -    # Pure THUMB case, THUMB C code cannot be called by ARM asm code directly.
 -    CPFLAGS += -mno-thumb-interwork -D THUMB_NO_INTERWORKING
 -    LDFLAGS += -mno-thumb-interwork -mthumb
 -    ASFLAGS += -D THUMB_NO_INTERWORKING
 -  endif
 -else
 -  CPFLAGS += -mno-thumb-interwork
 -  LDFLAGS += -mno-thumb-interwork
 -endif
 +# List all default C defines here, like -D_DEBUG=1
 +DDEFS =
 -# Generate dependency information
 -CPFLAGS += -MD -MP -MF .dep/$(@F).d
 +# List all default ASM defines here, like -D_DEBUG=1
 +DADEFS =
 -#
 -# Makefile rules
 -#
 +# List all default directories to look for include files here
 +DINCDIR =
 -all: $(OBJS) $(PROJECT).elf $(PROJECT).hex $(PROJECT).bin $(PROJECT).dmp
 +# List the default directory to look for the libraries here
 +DLIBDIR =
 -$(AOBJS) : %.o : %.c
 -	@echo
 -	$(CC) -c $(CPFLAGS) $(AOPT) -I . $(INCDIR) $< -o $@
 +# List all default libraries here
 +DLIBS =
 -$(TOBJS) : %.o : %.c
 -	@echo
 -	$(CC) -c $(CPFLAGS) $(TOPT) -I . $(INCDIR) $< -o $@
 +#
 +# End of default section
 +##############################################################################
 -$(ASMOBJS) : %.o : %.s
 -	@echo
 -	$(AS) -c $(ASFLAGS) -I . $(INCDIR) $< -o $@
 +##############################################################################
 +# Start of user section
 +#
 -%elf: $(OBJS)
 -	@echo
 -	$(CC) $(ASMOBJS) $(AOBJS) $(TOBJS) $(LDFLAGS) $(LIBS) -o $@
 +# List all user C define here, like -D_DEBUG=1
 +UDEFS =
 -%hex: %elf
 -	$(HEX) $< $@
 +# Define ASM defines here
 +UADEFS =
 -%bin: %elf
 -	$(BIN) $< $@
 +# List all user directories here
 +UINCDIR =
 -%dmp: %elf
 -	$(OD) $(ODFLAGS) $< > $@
 +# List the user directory to look for the libraries here
 +ULIBDIR =
 -clean:
 -	-rm -f $(OBJS)
 -	-rm -f $(PROJECT).elf
 -	-rm -f $(PROJECT).dmp
 -	-rm -f $(PROJECT).map
 -	-rm -f $(PROJECT).hex
 -	-rm -f $(PROJECT).bin
 -	-rm -f $(ASRC:.c=.c.bak)
 -	-rm -f $(ASRC:.c=.lst)
 -	-rm -f $(TSRC:.c=.c.bak)
 -	-rm -f $(TSRC:.c=.lst)
 -	-rm -f $(ASMSRC:.s=.s.bak)
 -	-rm -f $(ASMSRC:.s=.lst)
 -	-rm -fR .dep
 +# List all user libraries here
 +ULIBS =
  #
 -# Include the dependency files, should be the last of the makefile
 -#
 --include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
 +# End of user defines
 +##############################################################################
 -# *** EOF ***
 +include ../../ports/ARM7/rules.mk
 diff --git a/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile.thumb b/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile.thumb deleted file mode 100644 index e476abc6b..000000000 --- a/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile.thumb +++ /dev/null @@ -1,233 +0,0 @@ -#
 -#       !!!! Do NOT edit this makefile with an editor which replace tabs by spaces !!!!
 -#
 -##############################################################################################
 -#
 -# On command line:
 -#
 -# make all = Create project
 -#
 -# make clean = Clean project files.
 -#
 -# To rebuild project do "make clean" and "make all".
 -#
 -
 -##############################################################################################
 -# Start of default section
 -#
 -
 -TRGT = arm-elf-
 -CC   = $(TRGT)gcc
 -CP   = $(TRGT)objcopy
 -AS   = $(TRGT)gcc -x assembler-with-cpp
 -OD   = $(TRGT)objdump
 -HEX  = $(CP) -O ihex
 -BIN  = $(CP) -O binary
 -
 -MCU  = arm7tdmi
 -
 -# Enable this if you want the linker to remove unused code and data
 -LINK_GC = yes
 -
 -# List all default C defines here, like -D_DEBUG=1
 -DDEFS =
 -
 -# List all default ASM defines here, like -D_DEBUG=1
 -DADEFS =
 -
 -# List all default directories to look for include files here
 -DINCDIR =
 -
 -# List the default directory to look for the libraries here
 -DLIBDIR =
 -
 -# List all default libraries here
 -DLIBS =
 -
 -#
 -# End of default section
 -##############################################################################################
 -
 -##############################################################################################
 -# Start of user section
 -#
 -
 -# Define project name here
 -PROJECT = ch
 -
 -# Define linker script file here
 -LDSCRIPT= ch.ld
 -
 -# List all user C define here, like -D_DEBUG=1
 -UDEFS =
 -
 -# Define ASM defines here
 -UADEFS =
 -
 -# Imported source files
 -include ../../src/kernel.mk
 -include ../../test/test.mk
 -
 -# List of the required uIP source files.
 -USRC = ../../ext/uip-1.0/uip/uip_arp.c \
 -       ../../ext/uip-1.0/uip/psock.c \
 -       ../../ext/uip-1.0/uip/timer.c \
 -       ../../ext/uip-1.0/uip/uip.c \
 -       ../../ext/uip-1.0/apps/webserver/httpd.c \
 -       ../../ext/uip-1.0/apps/webserver/http-strings.c \
 -       ../../ext/uip-1.0/apps/webserver/httpd-fs.c \
 -       ../../ext/uip-1.0/apps/webserver/httpd-cgi.c
 -
 -# List ARM-mode C source files here
 -ASRC =
 -
 -# List THUMB-mode C sources here
 -# NOTE: If any module is compiled in thumb mode then -mthumb-interwork is
 -#       enabled for all modules and that lowers performance.
 -TSRC = ../../ports/ARM7/chcore.c \
 -       ../../ports/ARM7-AT91SAM7X/sam7x_serial.c \
 -       ../../ports/ARM7-AT91SAM7X/sam7x_emac.c \
 -       ${KERNSRC} \
 -       ${TESTSRC} \
 -       ${USRC} \
 -       ../../src/lib/evtimer.c \
 -       at91lib/aic.c \
 -       web/webthread.c \
 -       board.c main.c
 -
 -# List ASM source files here
 -ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chcoreasm.s \
 -         ../../ports/ARM7-AT91SAM7X/vectors.s
 -
 -# List all user directories here
 -UINCDIR = ../../src/include ../../src/lib ../../test \
 -          ../../ports/ARM7 ../../ports/ARM7-AT91SAM7X \
 -          ./web ../../ext/uip-1.0/uip ../../ext/uip-1.0/apps/webserver
 -
 -# List the user directory to look for the libraries here
 -ULIBDIR =
 -
 -# List all user libraries here
 -ULIBS =
 -
 -# ARM-specific options here
 -AOPT =
 -
 -# THUMB-specific options here
 -TOPT = -mthumb -D THUMB
 -
 -# Common options here
 -# NOTE: -ffixed-r7 is only needed if you enabled CH_CURRP_REGISTER_CACHE in
 -#       chconf.h.
 -# NOTE: -falign-functions=16 may improve the performance, not always, but
 -#       increases the code size.
 -OPT = -O2 -ggdb -fomit-frame-pointer -mabi=apcs-gnu
 -#OPT += -ffixed-r7
 -#OPT += -falign-functions=16
 -
 -# Define warning options here
 -WARN = -Wall -Wstrict-prototypes
 -
 -#
 -# End of user defines
 -##############################################################################################
 -
 -ifeq ($(LINK_GC),yes)
 -  OPT += -ffunction-sections -fdata-sections
 -endif
 -
 -INCDIR  = $(patsubst %,-I%,$(DINCDIR) $(UINCDIR))
 -LIBDIR  = $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR))
 -DEFS    = $(DDEFS) $(UDEFS)
 -ADEFS   = $(DADEFS) $(UADEFS)
 -AOBJS   = $(ASRC:.c=.o)
 -TOBJS   = $(TSRC:.c=.o)
 -OBJS	= $(ASMOBJS) $(AOBJS) $(TOBJS)
 -ASMOBJS = $(ASMSRC:.s=.o)
 -LIBS    = $(DLIBS) $(ULIBS)
 -MCFLAGS = -mcpu=$(MCU)
 -
 -ODFLAGS	= -x --syms
 -ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(<:.s=.lst) $(ADEFS)
 -CPFLAGS = $(MCFLAGS) $(OPT) $(WARN) -Wa,-alms=$(<:.c=.lst) $(DEFS)
 -LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR)
 -ifeq ($(LINK_GC),yes)
 -  LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch,--gc-sections $(LIBDIR)
 -else
 -  LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR)
 -endif
 -
 -# Thumb interwork enabled only if needed because it kills performance.
 -ifneq ($(TSRC),)
 -  CPFLAGS += -D THUMB_PRESENT
 -  ASFLAGS += -D THUMB_PRESENT
 -  ifneq ($(ASRC),)
 -    # Mixed ARM and THUMB case.
 -    CPFLAGS += -mthumb-interwork
 -    LDFLAGS += -mthumb-interwork
 -  else
 -    # Pure THUMB case, THUMB C code cannot be called by ARM asm code directly.
 -    CPFLAGS += -mno-thumb-interwork -D THUMB_NO_INTERWORKING
 -    LDFLAGS += -mno-thumb-interwork -mthumb
 -    ASFLAGS += -D THUMB_NO_INTERWORKING
 -  endif
 -else
 -  CPFLAGS += -mno-thumb-interwork
 -  LDFLAGS += -mno-thumb-interwork
 -endif
 -
 -# Generate dependency information
 -CPFLAGS += -MD -MP -MF .dep/$(@F).d
 -
 -#
 -# Makefile rules
 -#
 -
 -all: $(OBJS) $(PROJECT).elf $(PROJECT).hex $(PROJECT).bin $(PROJECT).dmp
 -
 -$(AOBJS) : %.o : %.c
 -	@echo
 -	$(CC) -c $(CPFLAGS) $(AOPT) -I . $(INCDIR) $< -o $@
 -
 -$(TOBJS) : %.o : %.c
 -	@echo
 -	$(CC) -c $(CPFLAGS) $(TOPT) -I . $(INCDIR) $< -o $@
 -
 -$(ASMOBJS) : %.o : %.s
 -	@echo
 -	$(AS) -c $(ASFLAGS) -I . $(INCDIR) $< -o $@
 -
 -%elf: $(OBJS)
 -	@echo
 -	$(CC) $(ASMOBJS) $(AOBJS) $(TOBJS) $(LDFLAGS) $(LIBS) -o $@
 -
 -%hex: %elf
 -	$(HEX) $< $@
 -
 -%bin: %elf
 -	$(BIN) $< $@
 -
 -%dmp: %elf
 -	$(OD) $(ODFLAGS) $< > $@
 -
 -clean:
 -	-rm -f $(OBJS)
 -	-rm -f $(PROJECT).elf
 -	-rm -f $(PROJECT).dmp
 -	-rm -f $(PROJECT).map
 -	-rm -f $(PROJECT).hex
 -	-rm -f $(PROJECT).bin
 -	-rm -f $(ASRC:.c=.c.bak)
 -	-rm -f $(ASRC:.c=.lst)
 -	-rm -f $(TSRC:.c=.c.bak)
 -	-rm -f $(TSRC:.c=.lst)
 -	-rm -f $(ASMSRC:.s=.s.bak)
 -	-rm -f $(ASMSRC:.s=.lst)
 -	-rm -fR .dep
 -
 -#
 -# Include the dependency files, should be the last of the makefile
 -#
 --include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
 -
 -# *** EOF ***
  | 
