CFLAGS += -funsigned-char
CFLAGS += -funsigned-bitfields
CFLAGS += -ffunction-sections
+CFLAGS += -fdata-sections
CFLAGS += -fno-inline-small-functions
CFLAGS += -fpack-struct
CFLAGS += -fshort-enums
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
$(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