4 # -D CFG_CONSOLE_USB for console on USB
5 # -D CFG_CONSOLE_UART0 for console on UART0
6 # -D CFG_CONSOLE_UART1 for console on UART1 instead of USB (disables GPS task, baud rate set to 115200)
7 # -D CFG_USB_MSC to use SD/MMC as a mass storage class device over USB
9 export LPC2148DEMO_OPTS=-D CFG_CONSOLE_USB
12 # These shouldn't need to be changed
16 export OBJCOPY=arm-elf-objcopy
17 export OBJDUMP=arm-elf-objdump
19 export WARNINGS=-Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused
20 export CFLAGS=$(WARNINGS) -D RUN_MODE=RUN_FROM_ROM -D GCC_ARM7 $(INCLUDES) $(BASEINCLUDE) -mcpu=arm7tdmi -T$(LDSCRIPT) -g -O3 -fomit-frame-pointer $(LPC2148DEMO_OPTS) -DFC1025 -DBDALE
21 export LDSCRIPT=lpc2148-rom.ld
22 export LINKER_FLAGS=$(COMMON)/common.a -Xlinker -olpc2148.elf -Xlinker -M -Xlinker -Map=lpc2148.map
23 export ROOT=$(shell pwd)
24 export BASEINCLUDE=-I$(ROOT) -I$(ROOT)/FreeRTOS/include
25 export COMMON=$(ROOT)/common
28 # Project sub-directories
30 SUBDIRS=FreeRTOS adc cpu dac eints fatfs fiq gps i2c iap leds monitor newlib rtc sensors swi uart usb usbmass usbser
34 ARM_OBJ = $(SRC_FILES:.c=.o)
38 @for i in $(SUBDIRS); do \
39 (cd $$i; $(MAKE) $(MFLAGS) $(MYMAKEFLAGS) all); done
44 sudo openocd -f ./openocd-flash.cfg
47 sudo openocd -f ./openocd-debug.cfg
49 lpc2148.hex : .depend Makefile lpc2148.elf
50 $(OBJCOPY) lpc2148.elf -O ihex lpc2148.hex
51 @echo "Length is " `grep __"end_of_text__ = ." *.map | cut -b 17-35` "bytes"
53 lpc2148.bin : .depend Makefile lpc2148.elf
54 $(OBJCOPY) lpc2148.elf -O binary lpc2148.bin
55 @echo "Length is " `grep __"end_of_text__ = ." *.map | cut -b 17-35` "bytes"
57 lpc2148.elf : .depend Makefile $(ARM_OBJ) $(COMMON)/common.a $(CRT0) $(LDSCRIPT)
58 $(CC) $(CFLAGS) $(ARM_OBJ) -nostartfiles $(CRT0) $(LINKER_FLAGS)
59 $(OBJDUMP) -d -S lpc2148.elf >lpc2148.lst
61 $(ARM_OBJ) : %.o : %.c Makefile .depend
62 $(CC) -c $(CFLAGS) $< -o $@
65 # The .depend files contains the list of header files that the
66 # various source files depend on. By doing this, we'll only
67 # rebuild the .o's that are affected by header files changing.
70 $(CC) $(CFLAGS) -M $(SRC_FILES) > .depend
78 find . -name \*.c -exec ctags -a {} \;
79 find . -name \*.h -exec ctags -a {} \;
83 find . -name \*.o -exec rm -f {} \;
84 find . -name .depend -exec rm -f {} \;
85 rm -f *.map *.lst *.elf *.hex *.bin .depend $(COMMON)/common.a
90 ifeq (.depend,$(wildcard .depend))