diff --git a/Makefile b/Makefile index 80d9abc..787cfc2 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ # be silent per default, but 'make V=1' will show all compiler calls. ifneq ($(V),1) Q := @ -NULL := 2> /dev/null +NULL := 1> /dev/null 2> /dev/null endif # the final binary name (without extension) @@ -94,6 +94,9 @@ OOCD ?= openocd OOCD_INTERFACE ?= stlink-v2 OOCD_TARGET ?= stm32f1x +# which USB CDC ACM port is used bu the device, so we can reset it +ACMPORT = /dev/ttyACM0 + # board specific USB DFU bootloader BOOTLOADERS = STM32duino-bootloader BOOTLOADER = $(BOOTLOADERS)/STM32F1/binaries/generic_boot20_pa1.bin @@ -135,7 +138,6 @@ list: $(BINARY).list $(Q)size $(@) %.o: %.c - @#printf " CC $(*).c\n" $(Q)$(CC) $(CFLAGS) $(ARCH_FLAGS) -o $(@) -c $(<) clean: @@ -156,9 +158,14 @@ flash-swd: $(BINARY).hex $(info flashing $(<) using SWD) $(Q)$(OOCD) --file interface/$(OOCD_INTERFACE).cfg --file target/$(OOCD_TARGET).cfg --command "init" --command "reset init" --command "flash write_image erase $(<)" --command "reset" --command "shutdown" $(NULL) -flash-dfu: $(BINARY).bin +# reset device by setting the data width to 5 bis on the USB CDC ACM port +reset: + $(Q)stty --file /dev/ttyACM0 115200 raw cs5 + $(Q)sleep 0.5 + +flash-dfu: $(BINARY).bin reset $(info flashing $(<) using DFU) - $(Q)dfu-util --device 1eaf:0003 --cfg 1 --intf 0 --alt 2 --reset --download $(<) + $(Q)dfu-util --device 1eaf:0003 --cfg 1 --intf 0 --alt 2 --reset --download $(<) $(NULL) .PHONY: clean elf bin hex srec list bootloader flash flash-swd flash-dfu .SECONDARY: