DEVICE=stm32f103x8
.PHONY: all
-all: $(BINARY).elf $(BINARY).bin
+all:: $(BINARY).elf
.PHONY: flash
flash: $(BINARY).flash
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)
.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
else
+all:: $(BINARY).bin
+
%.flash: %.bin
@printf " FLASH $<\n"
$(Q)$(ROOT)/bin/st-flash write $(*).bin 0x8000000