Skip to content

Commit

Permalink
add 'mavrdude' target into tmk_core/avr.mk (qmk#3986)
Browse files Browse the repository at this point in the history
* add 'mavrdude' target into tmk_core/avr.mk

I made it a little convenient when writing the same binary to multiple Pro Micro.

* rename target name 'mavrdude' to 'avrdude-loop'

* modify docs/flashing.md about avrdude-loop

* mdify docs/flashing.md again

* modifi docs/flashing.md 3rd
  • Loading branch information
mtei authored and jackhumbert committed Sep 28, 2018
1 parent edeace2 commit baebbc0
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
6 changes: 6 additions & 0 deletions docs/flashing.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@ or

make <keyboard>:<keymap>:avrdude

or if you want to flash multiple boards, use the following command

make <keyboard>:<keymap>:avrdude-loop

When you're done flashing boards, you'll need to hit Ctrl + C or whatever the correct keystroke is for your operating system to break the loop.

## Halfkay

Halfkay is a super-slim protocol developed by PJRC that uses HID, and come on all Teensys (namely the 2.0).
Expand Down
12 changes: 11 additions & 1 deletion tmk_core/avr.mk
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep
fi
$(DFU_PROGRAMMER) $(MCU) reset

avrdude: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
define EXEC_AVRDUDE
USB= ;\
if $(GREP) -q -s Microsoft /proc/version; then \
echo 'ERROR: AVR flashing cannot be automated within the Windows Subsystem for Linux (WSL) currently. Instead, take the .hex file generated and flash it using AVRDUDE, AVRDUDESS, or XLoader.'; \
else \
Expand All @@ -191,6 +192,15 @@ avrdude: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
sleep 1; \
avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex; \
fi
endef

avrdude: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
$(call EXEC_AVRDUDE)

avrdude-loop: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
while true; do \
$(call EXEC_AVRDUDE) ; \
done

# Convert hex to bin.
bin: $(BUILD_DIR)/$(TARGET).hex
Expand Down

0 comments on commit baebbc0

Please sign in to comment.