blob: afdb82fb023b7841700b3540e25b9db620b8e914 [file] [log] [blame]
brians0ab60bb2013-01-31 02:21:51 +00001NAME=main
2
3LDSCRIPT=lpc1758_Debug.ld
4
5CSRC=main.c
6
Brian Silvermanab2e6762013-03-29 17:27:41 -07007# See if /opt/cortex-m3 exists first, because that's the preferred location. If
8# not, fall back to /usr/local/cortex-m3.
9ifneq ($(wildcard /opt/cortex-m3),)
10 TOOLS_PREFIX=/opt/cortex-m3
11else
12 TOOLS_PREFIX=/usr/local/cortex-m3
13endif
14GCC_PATH=$(TOOLS_PREFIX)/bin
brians0ab60bb2013-01-31 02:21:51 +000015
root11a49d02013-03-30 06:27:47 +000016PORT=/dev/ttyUSB0
brians0ab60bb2013-01-31 02:21:51 +000017
18CC=$(GCC_PATH)/arm-eabi-gcc
19LD=$(GCC_PATH)/arm-eabi-ld
20OBJCOPY=$(GCC_PATH)/arm-eabi-objcopy
Austin Schuh63d0e9b2013-03-27 04:43:14 +000021OBJDUMP=$(GCC_PATH)/arm-eabi-objdump
brians0ab60bb2013-01-31 02:21:51 +000022AS=$(GCC_PATH)/arm-eabi-as
23FLASHER=lpc21isp
24
Austin Schuh63d0e9b2013-03-27 04:43:14 +000025CFLAGS=-I. -I./FreeRTOS/include -I./FreeRTOS/portable/GCC/ARM_CM3/ -I./CommonDemoTasks/include -O3 -mcpu=cortex-m3 -mthumb -Wl,--gc-sections -ffunction-sections -Wl,-static -Werror
brians0ab60bb2013-01-31 02:21:51 +000026
27SPEED=38400
28OSC=12000
29
30SOURCES=main.c \
31 ParTest.c \
32 printf-stdarg.c \
33 cr_startup_lpc17.c \
34 CommonDemoTasks/flash.c \
35 FreeRTOS/portable/MemMang/heap_2.c \
36 alloc.c \
37 analog.c \
38 FreeRTOS/portable/GCC/ARM_CM3/port.c \
39 FreeRTOS/tasks.c \
40 FreeRTOS/list.c \
41 FreeRTOS/queue.c \
42 CAN.c \
43 LPCUSB/usbinit.c \
44 LPCUSB/usbcontrol.c \
45 LPCUSB/USB_SENSOR_STREAM.c \
46 LPCUSB/usbhw_lpc.c \
47 spi.c \
48 LPCUSB/usbstdreq.c
49
50all: $(NAME).hex
51
52$(NAME).elf: Makefile $(SOURCES:.c=.o) $(LDSCRIPT)
Brian Silvermanab2e6762013-03-29 17:27:41 -070053 $(CC) $(CFLAGS) -nostartfiles -nostdlib -T $(LDSCRIPT) -o $@ -L$(TOOLS_PREFIX)/lib/gcc/arm-eabi/4.5.1/ $(SOURCES:.c=.o) -Wa,-Map -Wa,main.map -lgcc
brians0ab60bb2013-01-31 02:21:51 +000054
55%.o: %.c Makefile
56 $(CC) $(CFLAGS) -nostartfiles -nostdlib -c -o $@ $< -Wall -std=gnu99
57
58run: deploy
59 $(FLASHER) -termonly $(NAME).hex $(PORT) $(SPEED) $(OSC)
60
61deploy: all $(NAME).hex
62 $(FLASHER) -hex -verify $(NAME).hex $(PORT) $(SPEED) $(OSC)
63
64cat:
65 @cd ../../bin; python serial_looper.py
66
Austin Schuh63d0e9b2013-03-27 04:43:14 +000067assm.S: $(NAME).elf
Brian Silverman798c7782013-03-28 16:48:02 -070068 $(OBJDUMP) -D -S $(NAME).elf > $@
Brian Silvermanab2e6762013-03-29 17:27:41 -070069# So that you can see the assembly for an individual file with any comments etc.
70%.s: %.c Makefile
71 $(CC) $(CFLAGS) -nostartfiles -nostdlib -S -o $@ $< -Wall -std=gnu99
Austin Schuh63d0e9b2013-03-27 04:43:14 +000072
brians0ab60bb2013-01-31 02:21:51 +000073%.hex: %.elf Makefile
74 $(OBJCOPY) -O ihex $< $@
75
76clean:
77 rm -rf $(SOURCES:.c=.o) $(NAME).hex $(NAME).elf