X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tmk_core%2Fchibios.mk;h=4b5b6d00b5ae6e66fe440cd65c5f0f40f0fc1765;hb=e243afe23e34e84e5e8bf5edb086bd27065c0055;hp=0f665450ac56427a99ffc851f951feacbf9d2bb7;hpb=3542e573c8ee464f62fc5e9a0f618d3a244048c0;p=qmk_firmware.git diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index 0f665450a..4b5b6d00b 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -39,9 +39,13 @@ include $(STARTUP_MK) # HAL-OSAL files (optional). include $(CHIBIOS)/os/hal/hal.mk -PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/platform.mk +ifeq ("$(PLATFORM_NAME)","") + PLATFORM_NAME = platform +endif + +PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk ifeq ("$(wildcard $(PLATFORM_MK))","") -PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/platform.mk +PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/$(PLATFORM_NAME).mk endif include $(PLATFORM_MK) @@ -230,29 +234,51 @@ qmk: $(BUILD_DIR)/$(TARGET).bin zip $(TARGET).qmk -urj $(BUILD_DIR)/$(TARGET).json printf "@ $(TARGET).json\n@=info.json\n" | zipnote -w $(TARGET).qmk -dfu-util: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter +define EXEC_DFU_UTIL + until $(DFU_UTIL) -l | grep -q "Found DFU"; do\ + echo "Error: Bootloader not found. Trying again in 5s." ;\ + sleep 5 ;\ + done $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin +endef +dfu-util: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter + $(call EXEC_DFU_UTIL) -ifneq ($(strip $(TIME_DELAY)),) - TIME_DELAY = $(strip $(TIME_DELAY)) -else - TIME_DELAY = 10 -endif -dfu-util-wait: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter - echo "Preparing to flash firmware. Please enter bootloader now..." ;\ - COUNTDOWN=$(TIME_DELAY) ;\ - while [[ $$COUNTDOWN -ge 1 ]] ; do \ - echo "Flashing in $$COUNTDOWN ..."; \ - sleep 1 ;\ - ((COUNTDOWN = COUNTDOWN - 1)) ; \ - done; \ - echo "Flashing $(TARGET).bin" ;\ - sleep 1 ;\ - $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin +# Legacy alias +dfu-util-wait: dfu-util st-link-cli: $(BUILD_DIR)/$(TARGET).hex sizeafter $(ST_LINK_CLI) $(ST_LINK_ARGS) -q -c SWD -p $(BUILD_DIR)/$(TARGET).hex -Rst + +# Autodetect teensy loader +ifndef TEENSY_LOADER_CLI + ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) + TEENSY_LOADER_CLI ?= teensy-loader-cli + else + TEENSY_LOADER_CLI ?= teensy_loader_cli + endif +endif + +define EXEC_TEENSY + $(TEENSY_LOADER_CLI) -mmcu=$(MCU_LDSCRIPT) -w -v $(BUILD_DIR)/$(TARGET).hex +endef + +teensy: $(BUILD_DIR)/$(TARGET).hex cpfirmware sizeafter + $(call EXEC_TEENSY) + bin: $(BUILD_DIR)/$(TARGET).bin sizeafter $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin; + + +flash: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter +ifeq ($(strip $(BOOTLOADER)),dfu) + $(call EXEC_DFU_UTIL) +else ifeq ($(strip $(MCU_FAMILY)),KINETIS) + $(call EXEC_TEENSY) +else ifeq ($(strip $(MCU_FAMILY)),STM32) + $(call EXEC_DFU_UTIL) +else + $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_BOOTLOADER)" +endif