summaryrefslogtreecommitdiff
path: root/tmk_core/avr.mk
diff options
context:
space:
mode:
authorPurdea Andrei <andrei@purdea.ro>2021-06-16 07:20:44 +0300
committerGitHub <noreply@github.com>2021-06-16 14:20:44 +1000
commited0451bc28dc5ffcc3031bf9918a25e9fb8db2f7 (patch)
tree9f9f28329413adfa7c62bfe0219a346d87880b29 /tmk_core/avr.mk
parent22cd151fc359f48d75e361bd46a25ab6b40425fa (diff)
Make atmel-dfu and chibios-dfu flashing behave more like caterina flashing. (#12552)
This commit makes atmel-dfu and chibios-dfu bootloaders retry to detect the bootloader every 0,5 seconds (now configurable via the BOOTLOADER_RETRY_TIME makefile variable), and a period is printed after every try. This is a much more pleasant behaviour than the 5s retry timeout.
Diffstat (limited to 'tmk_core/avr.mk')
-rw-r--r--tmk_core/avr.mk18
1 files changed, 12 insertions, 6 deletions
diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk
index 521305f1b4..eb934ffe60 100644
--- a/tmk_core/avr.mk
+++ b/tmk_core/avr.mk
@@ -113,10 +113,16 @@ define EXEC_DFU
if [ "$(1)" ]; then \
echo "Flashing '$(1)' for EE_HANDS split keyboard support." ;\
fi; \
- until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\
- printf "$(MSG_BOOTLOADER_NOT_FOUND)" ;\
- sleep 5 ;\
- done; \
+ if ! $(DFU_PROGRAMMER) $(MCU) get bootloader-version >/dev/null 2>/dev/null; then\
+ printf "$(MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY)" ;\
+ sleep $(BOOTLOADER_RETRY_TIME) ;\
+ while ! $(DFU_PROGRAMMER) $(MCU) get bootloader-version >/dev/null 2>/dev/null; do\
+ printf "." ;\
+ sleep $(BOOTLOADER_RETRY_TIME) ;\
+ done ;\
+ printf "\n" ;\
+ fi; \
+ $(DFU_PROGRAMMER) $(MCU) get bootloader-version ;\
if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\
$(DFU_PROGRAMMER) $(MCU) erase --force; \
if [ "$(1)" ]; then \
@@ -172,7 +178,7 @@ define EXEC_AVRDUDE
TMP2=`mktemp`; \
list_devices > $$TMP1; \
while [ -z "$$USB" ]; do \
- sleep 0.5; \
+ sleep $(BOOTLOADER_RETRY_TIME); \
printf "."; \
list_devices > $$TMP2; \
USB=`comm -13 $$TMP1 $$TMP2 | $(GREP) -o '/dev/tty.*'`; \
@@ -187,7 +193,7 @@ define EXEC_AVRDUDE
sleep 1; \
else \
printf "Waiting for $$USB to become writable."; \
- while [ ! -w "$$USB" ]; do sleep 0.5; printf "."; done; echo ""; \
+ while [ ! -w "$$USB" ]; do sleep $(BOOTLOADER_RETRY_TIME); printf "."; done; echo ""; \
fi; \
if [ -z "$(1)" ]; then \
$(AVRDUDE_PROGRAMMER) -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex; \