forked from mirrors/qmk_userspace
		
	Align flashing behaviour of dfu-util (#6578)
* Align flashing retry logic of dfu-util * Align bootloader wait messages Co-Authored-By: Drashna Jaelre <drashna@live.com>
This commit is contained in:
		
					parent
					
						
							
								1c805b3d00
							
						
					
				
			
			
				commit
				
					
						ae44ec9820
					
				
			
		
					 2 changed files with 8 additions and 20 deletions
				
			
		| 
						 | 
					@ -172,6 +172,4 @@ Flashing sequence:
 | 
				
			||||||
There are a number of DFU commands that you can use to flash firmware to a STM32 device:
 | 
					There are a number of DFU commands that you can use to flash firmware to a STM32 device:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* `:dfu-util` - The default command for flashing to STM32 devices.
 | 
					* `:dfu-util` - The default command for flashing to STM32 devices.
 | 
				
			||||||
* `:dfu-util-wait` - This works like the default command, but it gives you a (configurable) 10 second timeout before it attempts to flash the firmware.  You can use `TIME_DELAY=20` from the command line to change the timeout.
 | 
					 | 
				
			||||||
   * Eg: `make <keyboard>:<keymap>:dfu-util TIME_DELAY=5`
 | 
					 | 
				
			||||||
* `:st-link-cli` - This allows you to flash the firmware via ST-LINK's CLI utility, rather than dfu-util.
 | 
					* `:st-link-cli` - This allows you to flash the firmware via ST-LINK's CLI utility, rather than dfu-util.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -235,28 +235,18 @@ qmk: $(BUILD_DIR)/$(TARGET).bin
 | 
				
			||||||
	printf "@ $(TARGET).json\n@=info.json\n" | zipnote -w $(TARGET).qmk
 | 
						printf "@ $(TARGET).json\n@=info.json\n" | zipnote -w $(TARGET).qmk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define EXEC_DFU_UTIL
 | 
					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
 | 
						$(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin
 | 
				
			||||||
endef
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dfu-util: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
 | 
					dfu-util: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
 | 
				
			||||||
	$(call EXEC_DFU_UTIL)
 | 
						$(call EXEC_DFU_UTIL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifneq ($(strip $(TIME_DELAY)),)
 | 
					# Legacy alias
 | 
				
			||||||
  TIME_DELAY = $(strip $(TIME_DELAY))
 | 
					dfu-util-wait: dfu-util
 | 
				
			||||||
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 ;\
 | 
					 | 
				
			||||||
  $(call EXEC_DFU_UTIL)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
st-link-cli: $(BUILD_DIR)/$(TARGET).hex sizeafter
 | 
					st-link-cli: $(BUILD_DIR)/$(TARGET).hex sizeafter
 | 
				
			||||||
	$(ST_LINK_CLI) $(ST_LINK_ARGS) -q -c SWD -p $(BUILD_DIR)/$(TARGET).hex -Rst
 | 
						$(ST_LINK_CLI) $(ST_LINK_ARGS) -q -c SWD -p $(BUILD_DIR)/$(TARGET).hex -Rst
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue