+
+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
+
+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
+
+teensy: $(BUILD_DIR)/$(TARGET).hex cpfirmware sizeafter
+ $(TEENSY_LOADER_CLI) -mmcu=$(MCU_LDSCRIPT) -w -v $(BUILD_DIR)/$(TARGET).hex
+