1 ##########################################################################
2 # User configuration and firmware specific object files
3 ##########################################################################
5 # The target, flash and ram of the LPC1xxx microprocessor.
6 # Use for the target the value: LPC11xx, LPC13xx or LPC17xx
11 # For USB HID support the LPC134x reserves 384 bytes from the sram,
12 # if you don't want to use the USB features, just use 0 here.
16 ##########################################################################
18 ##########################################################################
20 # Set DEBUGBUILD to 'TRUE' for full debugging (larger, slower binaries),
21 # or to 'FALSE' for release builds (smallest, fastest binaries)
24 ##########################################################################
25 # IDE Flags (Keeps various IDEs happy)
26 ##########################################################################
28 #OPTDEFINES = -D __NEWLIB__ -DR0KET
29 #OPTDEFINES = -D __NEWLIB__ -DHOB_REV2 -DUSBONLY
30 OPTDEFINES
= -D __NEWLIB__
-DHOB_REV2
31 ##########################################################################
32 # Project-specific files
33 ##########################################################################
39 badge
/jumpnrun
/collision.c \
40 badge
/jumpnrun
/enemies.c \
41 badge
/jumpnrun
/game_state.c \
42 badge
/jumpnrun
/items.c \
43 badge
/jumpnrun
/jumpnrun.c \
44 badge
/jumpnrun
/level_load.c \
45 badge
/jumpnrun
/player.c \
46 badge
/jumpnrun
/render.c \
47 badge
/jumpnrun
/shots.c \
48 badge
/jumpnrun
/starter.c \
49 badge
/jumpnrun
/stats.c \
50 badge
/jumpnrun
/tiles.c \
62 dataflash
/at45db041d.c
71 project
/commands
/cmd_chibi_addr.c \
72 project
/commands
/cmd_chibi_tx.c \
73 project
/commands
/cmd_i2ceeprom_read.c \
74 project
/commands
/cmd_i2ceeprom_write.c \
75 project
/commands
/cmd_lm75b_gettemp.c \
76 project
/commands
/cmd_reset.c \
77 project
/commands
/cmd_sd_dir.c \
78 project
/commands
/cmd_sysinfo.c \
79 project
/commands
/cmd_uart.c \
80 project
/commands
/cmd_pwm.c
83 project
/commands
/drawing
/cmd_backlight.c \
84 project
/commands
/drawing
/cmd_bmp.c \
85 project
/commands
/drawing
/cmd_button.c \
86 project
/commands
/drawing
/cmd_calibrate.c \
87 project
/commands
/drawing
/cmd_circle.c \
88 project
/commands
/drawing
/cmd_clear.c \
89 project
/commands
/drawing
/cmd_line.c \
90 project
/commands
/drawing
/cmd_orientation.c \
91 project
/commands
/drawing
/cmd_pixel.c \
92 project
/commands
/drawing
/cmd_progress.c \
93 project
/commands
/drawing
/cmd_rectangle.c \
94 project
/commands
/drawing
/cmd_roundedcorner.c \
95 project
/commands
/drawing
/cmd_text.c \
96 project
/commands
/drawing
/cmd_textw.c \
97 project
/commands
/drawing
/cmd_tsthreshhold.c \
98 project
/commands
/drawing
/cmd_tswait.c \
99 project
/commands
/drawing
/cmd_triangle.c
101 ##########################################################################
102 # Optional driver files
103 ##########################################################################
105 # Chibi Light-Weight Wireless Stack (AT86RF212)
107 drivers
/rf
/chibi
/chb.c \
108 drivers
/rf
/chibi
/chb_buf.c \
109 drivers
/rf
/chibi
/chb_drvr.c \
110 drivers
/rf
/chibi
/chb_eeprom.c \
111 drivers
/rf
/chibi
/chb_spi.c
115 drivers
/storage
/eeprom
/eeprom.c \
116 drivers
/storage
/eeprom
/mcp24aa
/mcp24aa.c
118 # LM75B temperature sensor
120 drivers
/sensors
/lm75b
/lm75b.c
124 drivers
/rtc
/isl12022m
/isl12022m.c
128 drivers
/displays
/tft
/drawing.c \
129 drivers
/displays
/tft
/touchscreen.c \
130 drivers
/displays
/tft
/colors.c \
131 drivers
/displays
/tft
/theme.c \
132 drivers
/displays
/tft
/bmp.c
136 drivers
/displays
/tft
/controls
/button.c \
137 drivers
/displays
/tft
/controls
/hsbchart.c \
138 drivers
/displays
/tft
/controls
/huechart.c \
139 drivers
/displays
/tft
/controls
/label.c \
140 drivers
/displays
/tft
/controls
/labelcentered.c \
141 drivers
/displays
/tft
/controls
/progressbar.c
143 # Bitmap (non-AA) fonts
145 drivers
/displays
/tft
/fonts.c \
146 drivers
/displays
/tft
/fonts
/dejavusans9.c \
147 drivers
/displays
/tft
/fonts
/dejavusansbold9.c \
148 drivers
/displays
/tft
/fonts
/dejavusanscondensed9.c \
149 drivers
/displays
/tft
/fonts
/dejavusansmono8.c \
150 drivers
/displays
/tft
/fonts
/dejavusansmonobold8.c \
151 drivers
/displays
/tft
/fonts
/verdana9.c \
152 drivers
/displays
/tft
/fonts
/verdana14.c \
153 drivers
/displays
/tft
/fonts
/verdanabold14.c
157 drivers
/displays
/tft
/aafonts.c \
158 drivers
/displays
/tft
/aafonts
/aa2
/DejaVuSansCondensed14_AA2.c \
159 drivers
/displays
/tft
/aafonts
/aa2
/DejaVuSansCondensedBold14_AA2.c \
160 drivers
/displays
/tft
/aafonts
/aa2
/DejaVuSansMono10_AA2.c \
161 drivers
/displays
/tft
/aafonts
/aa2
/DejaVuSansMono13_AA2.c \
162 drivers
/displays
/tft
/aafonts
/aa2
/DejaVuSansMono14_AA2.c
164 # LCD Driver (Only one can be included at a time!)
165 # SRCS += drivers/displays/tft/hw/hx8340b.c
166 # SRCS += drivers/displays/tft/hw/hx8347d.c
167 # SRCS += drivers/displays/tft/hw/ILI9328.c
168 # SRCS += drivers/displays/tft/hw/ILI9325.c
169 # SRCS += drivers/displays/tft/hw/ssd1331.c
170 # SRCS += drivers/displays/tft/hw/ssd1351.c
171 # SRCS += drivers/displays/tft/hw/st7735.c
172 # SRCS += drivers/displays/tft/hw/st7783.c
174 # Bitmap/Monochrome LCD support (ST7565, SSD1306, etc.)
176 drivers
/displays
/smallfonts.c \
177 drivers
/displays
/bitmap
/sharpmem
/sharpmem.c \
178 drivers
/displays
/bitmap
/st7565
/st7565.c \
179 drivers
/displays
/bitmap
/ssd1306
/ssd1306.c
181 #Character Displays (VFD text displays, etc.)
183 drivers
/displays
/character
/samsung_20T202DA2JA
/samsung_20T202DA2JA.c
185 # ChaN FatFS and SD card support
188 # drivers/fatfs/mmc.c
192 drivers
/motor
/stepper
/stepper.c
194 # RSA Encryption/Descryption
200 drivers
/dac
/mcp4725
/mcp4725.c \
201 drivers
/dac
/mcp4901
/mcp4901.c
205 drivers
/rf
/pn532
/pn532.c \
206 drivers
/rf
/pn532
/pn532_bus_i2c.c \
207 drivers
/rf
/pn532
/pn532_bus_uart.c \
208 drivers
/rf
/pn532
/helpers
/pn532_mifare_classic.c \
209 drivers
/rf
/pn532
/helpers
/pn532_mifare_ultralight.c
213 drivers
/sensors
/tcs3414
/tcs3414.c \
214 drivers
/sensors
/tsl2561
/tsl2561.c
218 drivers
/storage
/spiflash
/w25q16bv
/w25q16bv.c
222 drivers
/audio
/tea5767
/tea5767.c
224 # IN219 Current Sensor
226 drivers
/sensors
/ina219
/ina219.c
228 # MPL115A2 Barometric Pressure Sensor
230 drivers
/sensors
/mpl115a2
/mpl115a2.c
234 drivers
/adc
/ads1015
/ads1015.c
236 ##########################################################################
238 ##########################################################################
251 core
/systick
/systick.c \
252 core
/timer16
/timer16.c \
253 core
/timer32
/timer32.c \
254 core
/usbcdc
/cdc_buf.c \
255 core
/usbcdc
/cdcuser.c \
256 core
/usbcdc
/usbcore.c \
257 core
/usbcdc
/usbdesc.c \
258 core
/usbcdc
/usbhw.c \
259 core
/usbcdc
/usbuser.c \
260 core
/usbhid-rom
/usbconfig.c \
261 core
/usbhid-rom
/usbhid.c \
262 core
/usbhid-rom
/usbmsc.c \
266 # core/uart/uart_buf.c
269 ##########################################################################
270 # GNU GCC compiler prefix and location
271 ##########################################################################
273 CROSS_COMPILE
= arm-none-eabi-
274 AS
= $(CROSS_COMPILE
)gcc
275 CC
= $(CROSS_COMPILE
)gcc
276 LD
= $(CROSS_COMPILE
)gcc
277 SIZE
= $(CROSS_COMPILE
)size
278 OBJCOPY
= $(CROSS_COMPILE
)objcopy
279 OBJDUMP
= $(CROSS_COMPILE
)objdump
285 ##########################################################################
286 # GNU GCC compiler flags
287 ##########################################################################
289 INCLUDE_PATHS
= -I
$(ROOT_PATH
) -I
$(ROOT_PATH
)/project
291 ##########################################################################
293 ##########################################################################
296 LD_SCRIPT
= $(LD_PATH
)/linkscript.
ld
297 LD_TEMP
= $(LD_PATH
)/memory.
ld
299 ifeq (LPC11xx
,$(TARGET
))
305 CPU_TYPE
= cortex-
$(CORTEX_TYPE
)
308 lpc1xxx
/$(TARGET
)_handlers.c \
309 lpc1xxx
/LPC1xxx_startup.c
311 OBJS
= $(SRCS
:%.c
=%.o
)
312 DEPS
= $(SRCS
:%.c
=%.dep
)
314 ##########################################################################
315 # Compiler settings, parameters and flags
316 ##########################################################################
317 ifeq (TRUE
,$(DEBUGBUILD
))
318 CFLAGS
= -c
-g
-O0
$(INCLUDE_PATHS
) -Wall
-mthumb
-ffunction-sections
-fdata-sections
-fmessage-length
=0 -mcpu
=$(CPU_TYPE
) -DTARGET
=$(TARGET
) -fno-builtin
$(OPTDEFINES
) -std
=c99
319 ASFLAGS
= -c
-g
-O0
$(INCLUDE_PATHS
) -Wall
-mthumb
-ffunction-sections
-fdata-sections
-fmessage-length
=0 -mcpu
=$(CPU_TYPE
) -D__ASSEMBLY__
-x assembler-with-cpp
321 CFLAGS
= -c
-g
-Os
$(INCLUDE_PATHS
) -Wall
-mthumb
-ffunction-sections
-fdata-sections
-fmessage-length
=0 -mcpu
=$(CPU_TYPE
) -DTARGET
=$(TARGET
) -fno-builtin
$(OPTDEFINES
) -std
=c99
322 ASFLAGS
= -c
-g
-Os
$(INCLUDE_PATHS
) -Wall
-mthumb
-ffunction-sections
-fdata-sections
-fmessage-length
=0 -mcpu
=$(CPU_TYPE
) -D__ASSEMBLY__
-x assembler-with-cpp
325 LDFLAGS
= -nostartfiles
-mthumb
-mcpu
=$(CPU_TYPE
) -Wl
,--gc-sections
327 OCFLAGS
= --strip-unneeded
329 all: dep size
$(OUTFILE
).bin
$(OUTFILE
).hex
333 $(DEPS
) : %.dep
: %.c
334 $(CC
) $(CPPFLAGS
) $(CFLAGS
) -MM
$< -MT
$@
-MT
$(@
:%.dep
=%.o
) -MF
$@
339 -@echo
"MEMORY" > $(LD_TEMP
)
340 -@echo
"{" >> $(LD_TEMP
)
341 -@echo
" flash(rx): ORIGIN = 0x00000000, LENGTH = $(FLASH)" >> $(LD_TEMP
)
342 -@echo
" sram(rwx): ORIGIN = 0x10000000+$(SRAM_USB), LENGTH = $(SRAM)-$(SRAM_USB)" >> $(LD_TEMP
)
343 -@echo
"}" >> $(LD_TEMP
)
344 -@echo
"INCLUDE $(LD_SCRIPT)" >> $(LD_TEMP
)
346 $(OUTFILE
).elf
: $(OBJS
) $(LD_TEMP
)
347 $(LD
) $(LDFLAGS
) -T
$(LD_TEMP
) -o
$(OUTFILE
).elf
$(OBJS
) $(LDLIBS
)
349 $(OUTFILE
).bin
: $(OUTFILE
).elf
$(LPCRC
)
350 $(OBJCOPY
) $(OCFLAGS
) -O binary
$(OUTFILE
).elf
$(OUTFILE
).bin
351 $(LPCRC
) $(OUTFILE
).bin
353 $(OUTFILE
).hex
: $(OUTFILE
).elf
354 $(OBJCOPY
) $(OCFLAGS
) -O ihex
$(OUTFILE
).elf
$(OUTFILE
).hex
357 $(SIZE
) $(OUTFILE
).elf
360 rm -f
$(OBJS
) $(LD_TEMP
) $(OUTFILE
).elf
$(OUTFILE
).bin
$(OUTFILE
).hex
363 rm -f
$(DEPS
) $(LPCRC
)
365 .PHONY
: all dep size
clean distclean
367 CFLAGS_FOR_BUILD
= -Wall
-Wextra
-std
=c99
-O0
-g
369 LPCRC_SRCS
= tools
/lpcrc
/lpcrc.c
370 LPCRC_OBJS
= $(LPCRC_SRCS
:%.c
=%.o
)
371 LPCRC_DEPS
= $(LPCRC_SRCS
:%.c
=%.dep
)
373 $(LPCRC_DEPS
) : %.dep
: %.c
374 $(CC_FOR_BUILD
) $(CPPFLAGS_FOR_BUILD
) $(CFLAGS_FOR_BUILD
) -MM
$< -MT
$@
-MT
$(@
:%.dep
=%.o
) -MF
$@
376 $(LPCRC_OBJS
): %.o
: %.c
377 $(CC_FOR_BUILD
) $(CPPFLAGS_FOR_BUILD
) $(CFLAGS_FOR_BUILD
) -o
$@
-c
$<
379 $(LPCRC
): $(LPCRC_OBJS
)
380 $(CC_FOR_BUILD
) $(CFLAGS_FOR_BUILD
) $(LDFLAGS_FOR_BUILD
) -o
$@
$+ $(LDLIBS_FOR_BUILD
)