CC=arm-elf-gcc OBJCOPY=arm-elf-objcopy ARCH=arm-elf-ar SIZE=arm-elf-size #CC=arm--eabi-gcc #OBJCOPY=arm--eabi-objcopy #ARCH=arm--eabi-ar #SIZE=arm-eabi-size #OPTIM=-O3 #seems to do bad stuff #OPTIM=-O2 #for speed, does bad stuff #OPTIM=-O1 #some OPTIM=-O0 #none #OPTIM=-Os #seems to do bad stuff CRT0=Startarm.s LDSCRIPT=lpc2368_rom.ld USE_THUMB_MODE=NO REMOVE = rm -f WARNINGS =-Wall -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare \ -Waggregate-return -Wstrict-prototypes -Wunused CPU_TYPE = -mlittle-endian -mcpu=arm7tdmi -marm -fpack-struct -DUART1_LPRINTF DEBUG = -gdwarf-2 -MD -O PROJECT=LPC2378TEST SOURCE_DIR= ./source RTOS_SOURCE_DIR= ./FreeRTOS_CORE RTOS_PORT_DIR = ./LPC23xx_PORT # # CFLAGS common to both the THUMB and ARM mode builds # CFLAGS=$(WARNINGS) -D GCC_ARM7 -I. \ -I ./include \ -I $(SOURCE_DIR) \ -I $(RTOS_SOURCE_DIR) \ -I $(RTOS_PORT_DIR) \ $(DEBUG) $(CPU_TYPE) -T$(LDSCRIPT) \ $(OPTIM) CFLAGS += -Wa,-adhlns=$(subst $(suffix $<),.lst,$<) # CFLAGS += -Wa,-adhlns=$(subst $<,$<.lst,$<) ifeq ($(USE_THUMB_MODE),YES) CFLAGS += -mthumb-interwork -D THUMB_INTERWORK THUMB_FLAGS=-mthumb endif LINKER_FLAGS=-Xlinker -o$(PROJECT).elf -Xlinker -M -Xlinker -Map=$(PROJECT).map # Source files that can be built to THUMB mode. THUMB_SRC = # Source files that must be built to ARM mode. ARM_CSRC+=main.c portlcd.c ARM_SSRC+=$(CRT0) #FreeRTOS files, ARM_CSRC+=$(RTOS_PORT_DIR)/heap_1.c $(RTOS_PORT_DIR)/port.c $(RTOS_PORT_DIR)/portISR.c ARM_CSRC+=$(RTOS_SOURCE_DIR)/tasks.c $(RTOS_SOURCE_DIR)/queue.c $(RTOS_SOURCE_DIR)/list.c $(RTOS_SOURCE_DIR)/croutine.c all: $(PROJECT).elf $(PROJECT).hex # Define all object files. ARM_COBJ = $(ARM_CSRC:.c=.o) ARM_SOBJ = $(ARM_SSRC:.s=.o) THUMB_OBJ = $(THUMB_SRC:.c=.o) $(PROJECT).hex : $(PROJECT).elf $(OBJCOPY) $(PROJECT).elf -O ihex $(PROJECT).hex $(CC) --version $(PROJECT).elf : $(ARM_COBJ) $(ARM_SOBJ) $(THUMB_OBJ) $(CRT0) Makefile echo ##### echo ##### PROJECT.elf - $< echo ##### $(CC) $(CFLAGS) $(ARM_COBJ) $(ARM_SOBJ) $(THUMB_OBJ) -nostartfiles $(LINKER_FLAGS) $(SIZE) -A $(PROJECT).elf $(THUMB_OBJ) : %.o : %.c $(LDSCRIPT) Makefile echo ##### echo ##### THUMB_OBJ - $< echo ##### $(CC) -c $(THUMB_FLAGS) $(CFLAGS) $< -o $@ $(ARM_COBJ) : %.o : %.c $(LDSCRIPT) Makefile echo ##### echo ##### ARM_COBJ - $< echo ##### $(CC) -c $(CFLAGS) $< -o $@ $(ARM_SOBJ) : %.o : %.s $(LDSCRIPT) Makefile echo ##### echo ##### ARM_SOBJ - $< echo ##### $(CC) -c $(CFLAGS) $< -o $@ clean : $(REMOVE) $(ARM_COBJ) $(REMOVE) $(ARM_SOBJ) $(REMOVE) $(THUMB_OBJ) $(REMOVE) *.lst *.d *.o *.map *.hex *.elf # touch Makefile