Makefile_bl_2k 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. ##############################################################################
  2. BUILD = build
  3. BIN = free_dap_d11_bl_2k
  4. ##############################################################################
  5. .PHONY: all directory clean size dfu
  6. CC = arm-none-eabi-gcc
  7. OBJCOPY = arm-none-eabi-objcopy
  8. SIZE = arm-none-eabi-size
  9. ifeq ($(OS), Windows_NT)
  10. MKDIR = gmkdir
  11. else
  12. MKDIR = mkdir
  13. endif
  14. CFLAGS += -W -Wall --std=gnu11 -Os
  15. CFLAGS += -fno-diagnostics-show-caret
  16. CFLAGS += -fdata-sections -ffunction-sections
  17. CFLAGS += -funsigned-char -funsigned-bitfields
  18. CFLAGS += -mcpu=cortex-m0plus -mthumb
  19. CFLAGS += -MD -MP -MT $(BUILD)/$(*F).o -MF $(BUILD)/$(@F).d
  20. CFLAGS += -flto
  21. LDFLAGS += -mcpu=cortex-m0plus -mthumb
  22. LDFLAGS += -Wl,--gc-sections
  23. LDFLAGS += -Wl,--script=../linker/samd11d14_bl_2k.ld
  24. LDFLAGS += -flto
  25. INCLUDES += \
  26. -I../include \
  27. -I../usb \
  28. -I../../.. \
  29. -I..
  30. SRCS += \
  31. ../main.c \
  32. ../uart.c \
  33. ../usb/usb_samd11.c \
  34. ../usb/usb_std.c \
  35. ../usb/usb_cdc.c \
  36. ../usb/usb_hid.c \
  37. ../usb/usb_winusb.c \
  38. ../usb_descriptors.c \
  39. ../startup_samd11.c \
  40. ../../../dap.c \
  41. DEFINES += \
  42. -D__SAMD11C14A__ \
  43. -DDONT_USE_CMSIS_INIT \
  44. -DF_CPU=48000000
  45. CFLAGS += $(INCLUDES) $(DEFINES)
  46. OBJS = $(addprefix $(BUILD)/, $(notdir %/$(subst .c,.o, $(SRCS))))
  47. all: directory $(BUILD)/$(BIN).elf $(BUILD)/$(BIN).hex $(BUILD)/$(BIN).bin size
  48. $(BUILD)/$(BIN).elf: $(OBJS)
  49. @echo LD $@
  50. @$(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
  51. $(BUILD)/$(BIN).hex: $(BUILD)/$(BIN).elf
  52. @echo OBJCOPY $@
  53. @$(OBJCOPY) -O ihex $^ $@
  54. $(BUILD)/$(BIN).bin: $(BUILD)/$(BIN).elf
  55. @echo OBJCOPY $@
  56. @$(OBJCOPY) -O binary $^ $@
  57. %.o:
  58. @echo CC $@
  59. @$(CC) $(CFLAGS) $(filter %/$(subst .o,.c,$(notdir $@)), $(SRCS)) -c -o $@
  60. directory:
  61. @$(MKDIR) -p $(BUILD)
  62. size: $(BUILD)/$(BIN).elf
  63. @echo size:
  64. @$(SIZE) -t $^
  65. clean:
  66. @echo clean
  67. @-rm -rf $(BUILD)
  68. dfu: $(BUILD)/$(BIN).bin
  69. @echo DFU $^
  70. @cp $(BUILD)/$(BIN).bin $(BUILD)/$(BIN).dfu
  71. @dfu-suffix -a $(BUILD)/$(BIN).dfu -v ffff -p ffff -d ffff
  72. -include $(wildcard $(BUILD)/*.d)