Kaynağa Gözat

projects/riscv_usb: Add Makefile target to program app via DFU

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Sylvain Munaut 5 yıl önce
ebeveyn
işleme
acbdbcccd3
2 değiştirilmiş dosya ile 16 ekleme ve 0 silme
  1. 8 0
      build/project-rules.mk
  2. 8 0
      projects/riscv_usb/fw/Makefile

+ 8 - 0
build/project-rules.mk

@@ -11,6 +11,7 @@ NEXTPNR_ARGS ?= --freq 50
 ICEPACK ?= icepack
 ICEPROG ?= iceprog
 IVERILOG ?= iverilog
+DFU_UTIL ?= dfu-util
 
 ifeq ($(PLACER),heap)
 NEXTPNR_SYS_ARGS += --placer heap
@@ -108,6 +109,13 @@ sudo-prog: $(BUILD_TMP)/$(PROJ).bin
 	@echo 'Executing prog as root!!!'
 	sudo $(ICEPROG) $<
 
+dfuprog: $(BUILD_TMP)/$(PROJ).bin
+ifeq ($(DFU_SERIAL),)
+	@echo "[!] DFU_SERIAL not defined"
+else
+	$(DFU_UTIL) -e -S $(DFU_SERIAL) -a 0 -D $<
+endif
+
 clean:
 	@rm -Rf $(BUILD_TMP)
 

+ 8 - 0
projects/riscv_usb/fw/Makefile

@@ -3,6 +3,7 @@ CROSS ?= riscv-none-embed-
 CC = $(CROSS)gcc
 OBJCOPY = $(CROSS)objcopy
 ICEPROG = iceprog
+DFU_UTIL = dfu-util
 
 BOARD_DEFINE=BOARD_$(shell echo $(BOARD) | tr a-z\- A-Z_)
 CFLAGS=-Wall -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section --specs=nano.specs -D$(BOARD_DEFINE)
@@ -83,6 +84,13 @@ prog_dfu: fw_dfu.bin
 prog_app: fw_app.bin
 	$(ICEPROG) -o 640k $<
 
+dfuprog_app: fw_app.bin
+ifeq ($(DFU_SERIAL),)
+	@echo "[!] DFU_SERIAL not defined"
+else
+	$(DFU_UTIL) -R -S $(DFU_SERIAL) -a 1 -D $<
+endif
+
 
 clean:
 	rm -f *.bin *.hex *.elf *.o *.gen.h