From 9a5423536a1ad844c281f06cf794d7d60e3a471f Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Tue, 25 Feb 2020 17:42:14 +0100 Subject: [PATCH] Makefiles: Signing of DFU firmware and cleanups --- mk/bluepill.mk | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/mk/bluepill.mk b/mk/bluepill.mk index a155801..829c79b 100644 --- a/mk/bluepill.mk +++ b/mk/bluepill.mk @@ -19,7 +19,7 @@ OPENCM3_DIR=/home/mj/stm/libopencm3 DEVICE=stm32f103x8 .PHONY: all -all: $(BINARY).elf $(BINARY).bin +all:: $(BINARY).elf .PHONY: flash flash: $(BINARY).flash @@ -83,10 +83,10 @@ LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group include $(OPENCM3_DIR)/mk/genlink-rules.mk %.bin: %.elf - @printf " OBJCOPY $(*).bin\n" - $(Q)$(OBJCOPY) -Obinary $(*).elf $(*).bin + @printf " OBJCOPY $< -> $@\n" + $(Q)$(OBJCOPY) -Obinary $< $@ ifdef MAX_SIZE - $(Q)if [ $$(stat -c '%s' $(*).bin) -gt $(MAX_SIZE) ] ; then echo >&2 "Output too large!" ; false ; fi + $(Q)if [ $$(stat -c '%s' $@) -gt $(MAX_SIZE) ] ; then echo >&2 "Output too exceeds $(MAX_SIZE) bytes!" ; false ; fi endif %.elf: $(OBJS) $(UCW_LDSCRIPT) @@ -100,20 +100,34 @@ endif .PHONY: clean clean: @printf " CLEAN\n" - $(Q)rm -f *.elf *.bin *.o *.d *.map $(LDSCRIPT) $(UCW_LDSCRIPT) + $(Q)rm -f *.elf *.bin *.dfu *.o *.d *.map $(LDSCRIPT) $(UCW_LDSCRIPT) ifdef WITH_DFU_FLASH -%.flash: %.bin +all:: $(BINARY).dfu + +%.flash: %.dfu @printf " FLASH $<\n" - $(Q)dfu-util -D $(*).bin + $(Q)dfu-util -D $< + +%.dfu: %.bin $(ROOT)/tools/dfu-sign + @printf " SIGN $< -> $@\n" + $(Q)$(ROOT)/tools/dfu-sign $< $@ + +$(ROOT)/tools/dfu-sign: + make -C $(ROOT)/tools + # For the STM32duino-bootloader, we used: +#%.flash: %.bin +# @printf " FLASH $<\n" # $(Q)dfu-util -a2 -D $(*).bin else ifdef WITH_SERIAL_FLASH +all:: $(BINARY).bin + BOOT_SERIAL ?= /dev/ttyUSB0 %.flash: %.bin @@ -126,6 +140,8 @@ reset: all else +all:: $(BINARY).bin + %.flash: %.bin @printf " FLASH $<\n" $(Q)$(ROOT)/bin/st-flash write $(*).bin 0x8000000 -- 2.39.2