]> git.friedersdorff.com Git - max/tmk_keyboard.git/blobdiff - tmk_core/rules.mk
xt_usb: Fix XT soft reset
[max/tmk_keyboard.git] / tmk_core / rules.mk
index a790f874bc9c93eb8d0fb3add10a177753767706..3c386b1f7f340a164ff91a7418b96011b04a03f0 100644 (file)
@@ -124,6 +124,7 @@ CFLAGS += -O$(OPT)
 CFLAGS += -funsigned-char
 CFLAGS += -funsigned-bitfields
 CFLAGS += -ffunction-sections
+CFLAGS += -fdata-sections
 CFLAGS += -fno-inline-small-functions
 CFLAGS += -fpack-struct
 CFLAGS += -fshort-enums
@@ -410,6 +411,9 @@ gccversion :
 program: $(TARGET).hex $(TARGET).eep
        $(PROGRAM_CMD)
 
+dude: $(TARGET).hex
+       avrdude -p$(MCU) -cavr109 -b57600 -Uflash:w:$(TARGET).hex -P$(DEV)
+
 teensy: $(TARGET).hex
        teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
 
@@ -419,14 +423,21 @@ flip: $(TARGET).hex
        batchisp -hardware usb -device $(MCU) -operation start reset 0
 
 dfu: $(TARGET).hex
-ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1)))
+       @echo -n dfu-programmer: waiting
+       @until dfu-programmer $(MCU) get bootloader-version > /dev/null 2>&1; do \
+               echo  -n "."; \
+               sleep 1; \
+       done
+       @echo
+
+ifeq ($(shell dfu-programmer --version 2>&1 | grep -q 0.7; echo $$?),0)
        dfu-programmer $(MCU) erase --force
 else
        dfu-programmer $(MCU) erase
 endif
-       dfu-programmer $(MCU) erase
+
        dfu-programmer $(MCU) flash $(TARGET).hex
-       dfu-programmer $(MCU) reset
+       dfu-programmer $(MCU) reset || true # ignore exit code
        
 dfu-start:
        dfu-programmer $(MCU) reset
@@ -440,11 +451,7 @@ flip-ee: $(TARGET).hex $(TARGET).eep
        $(REMOVE) $(TARGET)eep.hex
 
 dfu-ee: $(TARGET).hex $(TARGET).eep
-ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1)))
        dfu-programmer $(MCU) flash --eeprom $(TARGET).eep
-else
-       dfu-programmer $(MCU) flash-eeprom $(TARGET).eep
-endif
        dfu-programmer $(MCU) reset