logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

flash.mk (3720B)


  1. # Hey Emacs, this is a -*- makefile -*-
  2. ##############################################################################
  3. # Architecture or project specific options
  4. #
  5. DFU_ARGS ?=
  6. ifneq ("$(SERIAL)","")
  7. DFU_ARGS += -S $(SERIAL)
  8. endif
  9. DFU_UTIL ?= dfu-util
  10. define EXEC_DFU_UTIL
  11. if ! $(DFU_UTIL) -l | grep -q "Found DFU"; then \
  12. printf "$(MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY)" ;\
  13. sleep $(BOOTLOADER_RETRY_TIME) ;\
  14. while ! $(DFU_UTIL) -l | grep -q "Found DFU"; do \
  15. printf "." ;\
  16. sleep $(BOOTLOADER_RETRY_TIME) ;\
  17. done ;\
  18. printf "\n" ;\
  19. fi
  20. $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin
  21. endef
  22. WB32_DFU_UPDATER ?= wb32-dfu-updater_cli
  23. define EXEC_WB32_DFU_UPDATER
  24. if ! wb32-dfu-updater_cli -l | grep -q "Found DFU"; then \
  25. printf "$(MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY)" ;\
  26. sleep $(BOOTLOADER_RETRY_TIME) ;\
  27. while ! wb32-dfu-updater_cli -l | grep -q "Found DFU"; do \
  28. printf "." ;\
  29. sleep $(BOOTLOADER_RETRY_TIME) ;\
  30. done ;\
  31. printf "\n" ;\
  32. fi
  33. $(WB32_DFU_UPDATER) -D $(BUILD_DIR)/$(TARGET).bin && $(WB32_DFU_UPDATER) -R
  34. endef
  35. dfu-util: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
  36. $(call EXEC_DFU_UTIL)
  37. define EXEC_UF2_UTIL_DEPLOY
  38. $(UF2CONV) --wait --deploy $(BUILD_DIR)/$(TARGET).uf2
  39. endef
  40. # TODO: Remove once ARM has a way to configure EECONFIG_HANDEDNESS
  41. # within the emulated eeprom via dfu-util or another tool
  42. ifneq (,$(filter $(MAKECMDGOALS), dfu-util-split-left uf2-split-left))
  43. OPT_DEFS += -DINIT_EE_HANDS_LEFT
  44. endif
  45. ifneq (,$(filter $(MAKECMDGOALS), dfu-util-split-right uf2-split-right))
  46. OPT_DEFS += -DINIT_EE_HANDS_RIGHT
  47. endif
  48. dfu-util-split-left: dfu-util
  49. dfu-util-split-right: dfu-util
  50. uf2-split-left: flash
  51. uf2-split-right: flash
  52. ST_LINK_CLI ?= st-link_cli
  53. ST_LINK_ARGS ?=
  54. st-link-cli: $(BUILD_DIR)/$(TARGET).hex sizeafter
  55. $(ST_LINK_CLI) $(ST_LINK_ARGS) -q -c SWD -p $(BUILD_DIR)/$(TARGET).hex -Rst
  56. ST_FLASH ?= st-flash
  57. ST_FLASH_ARGS ?=
  58. st-flash: $(BUILD_DIR)/$(TARGET).hex sizeafter
  59. $(ST_FLASH) $(ST_FLASH_ARGS) --reset --format ihex write $(BUILD_DIR)/$(TARGET).hex
  60. # Autodetect teensy loader
  61. ifndef TEENSY_LOADER_CLI
  62. ifneq (, $(shell which teensy-loader-cli 2>/dev/null))
  63. TEENSY_LOADER_CLI ?= teensy-loader-cli
  64. else
  65. TEENSY_LOADER_CLI ?= teensy_loader_cli
  66. endif
  67. endif
  68. TEENSY_LOADER_CLI_MCU ?= $(MCU_LDSCRIPT)
  69. define EXEC_TEENSY
  70. $(TEENSY_LOADER_CLI) -mmcu=$(TEENSY_LOADER_CLI_MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
  71. endef
  72. teensy: $(BUILD_DIR)/$(TARGET).hex cpfirmware sizeafter
  73. $(call EXEC_TEENSY)
  74. flash: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
  75. $(SILENT) || printf "Flashing for bootloader: $(BLUE)$(BOOTLOADER)$(NO_COLOR)\n"
  76. ifneq ($(strip $(PROGRAM_CMD)),)
  77. $(UNSYNC_OUTPUT_CMD) && $(PROGRAM_CMD)
  78. else ifeq ($(strip $(BOOTLOADER)),kiibohd)
  79. $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL)
  80. else ifeq ($(strip $(BOOTLOADER)),tinyuf2)
  81. $(UNSYNC_OUTPUT_CMD) && $(call EXEC_UF2_UTIL_DEPLOY)
  82. else ifeq ($(strip $(BOOTLOADER)),uf2boot)
  83. $(UNSYNC_OUTPUT_CMD) && $(call EXEC_UF2_UTIL_DEPLOY)
  84. else ifeq ($(strip $(BOOTLOADER)),rp2040)
  85. $(UNSYNC_OUTPUT_CMD) && $(call EXEC_UF2_UTIL_DEPLOY)
  86. else ifeq ($(strip $(MCU_FAMILY)),KINETIS)
  87. $(UNSYNC_OUTPUT_CMD) && $(call EXEC_TEENSY)
  88. else ifeq ($(strip $(MCU_FAMILY)),MIMXRT1062)
  89. $(UNSYNC_OUTPUT_CMD) && $(call EXEC_TEENSY)
  90. else ifeq ($(strip $(MCU_FAMILY)),STM32)
  91. $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL)
  92. else ifeq ($(strip $(MCU_FAMILY)),WB32)
  93. $(UNSYNC_OUTPUT_CMD) && $(call EXEC_WB32_DFU_UPDATER)
  94. else ifeq ($(strip $(MCU_FAMILY)),AT32)
  95. $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL)
  96. else ifeq ($(strip $(MCU_FAMILY)),GD32V)
  97. $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL)
  98. else
  99. $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_BOOTLOADER)"
  100. endif