brians | 0ab60bb | 2013-01-31 02:21:51 +0000 | [diff] [blame] | 1 | NAME=main |
| 2 | |
| 3 | LDSCRIPT=lpc1758_Debug.ld |
| 4 | |
| 5 | CSRC=main.c |
| 6 | |
Brian Silverman | ab2e676 | 2013-03-29 17:27:41 -0700 | [diff] [blame] | 7 | # See if /opt/cortex-m3 exists first, because that's the preferred location. If |
| 8 | # not, fall back to /usr/local/cortex-m3. |
| 9 | ifneq ($(wildcard /opt/cortex-m3),) |
| 10 | TOOLS_PREFIX=/opt/cortex-m3 |
| 11 | else |
| 12 | TOOLS_PREFIX=/usr/local/cortex-m3 |
| 13 | endif |
| 14 | GCC_PATH=$(TOOLS_PREFIX)/bin |
brians | 0ab60bb | 2013-01-31 02:21:51 +0000 | [diff] [blame] | 15 | |
root | 11a49d0 | 2013-03-30 06:27:47 +0000 | [diff] [blame] | 16 | PORT=/dev/ttyUSB0 |
brians | 0ab60bb | 2013-01-31 02:21:51 +0000 | [diff] [blame] | 17 | |
| 18 | CC=$(GCC_PATH)/arm-eabi-gcc |
| 19 | LD=$(GCC_PATH)/arm-eabi-ld |
| 20 | OBJCOPY=$(GCC_PATH)/arm-eabi-objcopy |
Austin Schuh | 63d0e9b | 2013-03-27 04:43:14 +0000 | [diff] [blame] | 21 | OBJDUMP=$(GCC_PATH)/arm-eabi-objdump |
brians | 0ab60bb | 2013-01-31 02:21:51 +0000 | [diff] [blame] | 22 | AS=$(GCC_PATH)/arm-eabi-as |
| 23 | FLASHER=lpc21isp |
| 24 | |
Austin Schuh | 63d0e9b | 2013-03-27 04:43:14 +0000 | [diff] [blame] | 25 | CFLAGS=-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 |
brians | 0ab60bb | 2013-01-31 02:21:51 +0000 | [diff] [blame] | 26 | |
| 27 | SPEED=38400 |
| 28 | OSC=12000 |
| 29 | |
| 30 | SOURCES=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 | |
| 50 | all: $(NAME).hex |
| 51 | |
| 52 | $(NAME).elf: Makefile $(SOURCES:.c=.o) $(LDSCRIPT) |
Brian Silverman | ab2e676 | 2013-03-29 17:27:41 -0700 | [diff] [blame] | 53 | $(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 |
brians | 0ab60bb | 2013-01-31 02:21:51 +0000 | [diff] [blame] | 54 | |
| 55 | %.o: %.c Makefile |
| 56 | $(CC) $(CFLAGS) -nostartfiles -nostdlib -c -o $@ $< -Wall -std=gnu99 |
| 57 | |
| 58 | run: deploy |
| 59 | $(FLASHER) -termonly $(NAME).hex $(PORT) $(SPEED) $(OSC) |
| 60 | |
| 61 | deploy: all $(NAME).hex |
| 62 | $(FLASHER) -hex -verify $(NAME).hex $(PORT) $(SPEED) $(OSC) |
| 63 | |
| 64 | cat: |
| 65 | @cd ../../bin; python serial_looper.py |
| 66 | |
Austin Schuh | 63d0e9b | 2013-03-27 04:43:14 +0000 | [diff] [blame] | 67 | assm.S: $(NAME).elf |
Brian Silverman | 798c778 | 2013-03-28 16:48:02 -0700 | [diff] [blame] | 68 | $(OBJDUMP) -D -S $(NAME).elf > $@ |
Brian Silverman | ab2e676 | 2013-03-29 17:27:41 -0700 | [diff] [blame] | 69 | # 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 Schuh | 63d0e9b | 2013-03-27 04:43:14 +0000 | [diff] [blame] | 72 | |
brians | 0ab60bb | 2013-01-31 02:21:51 +0000 | [diff] [blame] | 73 | %.hex: %.elf Makefile |
| 74 | $(OBJCOPY) -O ihex $< $@ |
| 75 | |
| 76 | clean: |
| 77 | rm -rf $(SOURCES:.c=.o) $(NAME).hex $(NAME).elf |