Keyboard firmwares for Atmel AVR and Cortex-M
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

gcc.mk 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. ###############################################################################
  2. GCC_BIN =
  3. AS = $(GCC_BIN)arm-none-eabi-as
  4. CC = $(GCC_BIN)arm-none-eabi-gcc
  5. CPP = $(GCC_BIN)arm-none-eabi-g++
  6. LD = $(GCC_BIN)arm-none-eabi-gcc
  7. OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
  8. OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
  9. SIZE = $(GCC_BIN)arm-none-eabi-size
  10. CHKSUM = ~/Dropbox/MBED/tool/lpc-vector-checksum
  11. CPU = -mcpu=cortex-m0 -mthumb
  12. CC_FLAGS += $(CPU) -c -g -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections
  13. CC_FLAGS += -MMD -MP
  14. CC_SYMBOLS = -DTARGET_LPC11U35_401 -DTARGET_M0 -DTARGET_NXP -DTARGET_LPC11UXX -DTOOLCHAIN_GCC_ARM -DTOOLCHAIN_GCC -D__CORTEX_M0 -DARM_MATH_CM0 -DMBED_BUILD_TIMESTAMP=1399108688.49 -D__MBED__=1
  15. LD_FLAGS = -mcpu=cortex-m0 -mthumb -Wl,--gc-sections --specs=nano.specs
  16. LD_FLAGS += -Wl,-Map=$(OBJDIR)/$(PROJECT).map,--cref
  17. LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
  18. ifeq ($(DEBUG), 1)
  19. CC_FLAGS += -DDEBUG -O0
  20. else
  21. CC_FLAGS += -DNDEBUG -Os
  22. endif
  23. all: $(OBJDIR)/$(PROJECT).bin $(OBJDIR)/$(PROJECT).hex size
  24. clean:
  25. rm -f $(OBJDIR)/$(PROJECT).bin $(OBJDIR)/$(PROJECT).elf $(OBJDIR)/$(PROJECT).hex $(OBJDIR)/$(PROJECT).map $(OBJDIR)/$(PROJECT).lst $(OBJECTS) $(DEPS)
  26. rm -fr $(OBJDIR)
  27. $(OBJDIR)/%.o: %.s
  28. mkdir -p $(@D)
  29. $(AS) $(CPU) -o $@ $<
  30. $(OBJDIR)/%.o: %.c
  31. mkdir -p $(@D)
  32. $(CC) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99 $(INCLUDE_PATHS) -o $@ $<
  33. $(OBJDIR)/%.o: %.cpp
  34. mkdir -p $(@D)
  35. $(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 $(INCLUDE_PATHS) -o $@ $<
  36. $(OBJDIR)/$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
  37. $(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
  38. @echo ""
  39. @echo "*****"
  40. @echo "***** You must modify vector checksum value in *.bin and *.hex files."
  41. @echo "*****"
  42. @echo ""
  43. $(OBJDIR)/$(PROJECT).bin: $(OBJDIR)/$(PROJECT).elf
  44. @$(OBJCOPY) -O binary $< $@
  45. @echo "Writing vector checksum value into $@ ..."
  46. @$(CHKSUM) $@
  47. @echo
  48. $(OBJDIR)/$(PROJECT).hex: $(OBJDIR)/$(PROJECT).elf
  49. @$(OBJCOPY) -O ihex $< $@
  50. $(OBJDIR)/$(PROJECT).lst: $(OBJDIR)/$(PROJECT).elf
  51. @$(OBJDUMP) -Sdh $< > $@
  52. lst: $(OBJDIR)/$(PROJECT).lst
  53. size:
  54. $(SIZE) $(OBJDIR)/$(PROJECT).elf
  55. prog: $(OBJDIR)/$(PROJECT).bin
  56. @echo "Program..."
  57. ifneq ($(shell mount | grep 'CRP DISABLD'),)
  58. umount /dev/nxpisp >/dev/null 2>&1
  59. endif
  60. dd if=$< of=/dev/nxpisp seek=4
  61. DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d)
  62. -include $(DEPS)