Skip to content

Commit f22e19e

Browse files
committed
Add pyocd flash targets.
They are used when make is invoked with FLASHER=pyocd. Still defaults to using NRFUTIL.
1 parent 791906c commit f22e19e

File tree

1 file changed

+55
-10
lines changed

1 file changed

+55
-10
lines changed

Makefile

Lines changed: 55 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,19 @@ OBJCOPY = $(CROSS_COMPILE)objcopy
4444
SIZE = $(CROSS_COMPILE)size
4545
GDB = $(CROSS_COMPILE)gdb
4646

47+
# Flasher utility options
4748
NRFUTIL = adafruit-nrfutil
4849
NRFJPROG = nrfjprog
50+
FLASHER ?=
51+
52+
# default to nrf
53+
ifeq ($(FLASHER),)
54+
FLASHER = nrf
55+
else ifeq ($(FLASHER),pyocd)
56+
PYOCD ?= pyocd
57+
else
58+
$(error Unsupported flash utility: "$(FLASHER)")
59+
endif
4960

5061
# Set make directory command, Windows tries to create a directory named "-p" if that flag is there.
5162
ifneq ($(OS), Windows_NT)
@@ -387,32 +398,66 @@ __check_defined = \
387398
$(if $(value $1),, \
388399
$(error Undefined make flag: $1$(if $2, ($2))))
389400

390-
# Flash the compiled
391-
flash: $(BUILD)/$(OUT_FILE)-nosd.hex
401+
402+
#------------------- Flash with NRFUTIL -------------------
403+
ifeq ($(FLASHER),nrf)
404+
405+
# Flash the compiled
406+
flash: $(BUILD)/$(OUT_FILE)-nosd.hex
392407
@echo Flashing: $(notdir $<)
393408
$(NRFJPROG) --program $< --sectoranduicrerase -f nrf52 --reset
394409

395-
# dfu using CDC interface
396-
dfu-flash: $(BUILD)/$(MERGED_FILE).zip
410+
# dfu using CDC interface
411+
dfu-flash: $(BUILD)/$(MERGED_FILE).zip
397412
@:$(call check_defined, SERIAL, example: SERIAL=/dev/ttyACM0)
398413
$(NRFUTIL) --verbose dfu serial --package $< -p $(SERIAL) -b 115200 --singlebank --touch 1200
399414

400-
erase:
415+
erase:
401416
@echo Erasing flash
402417
$(NRFJPROG) -f nrf52 --eraseall
403418

404-
# flash SD only
405-
sd:
419+
# flash SD only
420+
sd:
406421
@echo Flashing: $(SD_HEX)
407422
$(NRFJPROG) --program $(SD_HEX) -f nrf52 --sectorerase --reset
408423

409-
# flash MBR only
410-
mbr:
424+
# flash MBR only
425+
mbr:
411426
@echo Flashing: $(MBR_HEX)
412427
$(NRFJPROG) --program $(MBR_HEX) -f nrf52 --sectorerase --reset
413428

429+
#------------------- Flash with PYOCD -------------------
430+
else ifeq ($(FLASHER),pyocd)
431+
432+
# Flash the compiled
433+
flash: $(BUILD)/$(OUT_FILE)-nosd.hex
434+
@echo Flashing: $(notdir $<)
435+
$(PYOCD) flash -t $(MCU_SUB_VARIANT) $<
436+
437+
# dfu unsupported with pyocd
438+
dfu-flash: $(BUILD)/$(MERGED_FILE).zip
439+
$(error dfu-flash is not implemented with pyocd as the FLASHER)
440+
441+
erase:
442+
@echo Erasing flash
443+
$(PYOCD) erase -t $(MCU_SUB_VARIANT) --chip
444+
445+
# flash SD only
446+
sd:
447+
@echo Flashing: $(SD_HEX)
448+
$(PYOCD) flash -t $(MCU_SUB_VARIANT) $(SD_HEX)
449+
450+
# flash MBR only
451+
mbr:
452+
@echo Flashing: $(MBR_HEX)
453+
$(PYOCD) flash -t $(MCU_SUB_VARIANT) $(MBR_HEX)
454+
455+
endif
456+
457+
#------------------- Debugging -------------------
458+
414459
gdbflash: $(BUILD)/$(MERGED_FILE).hex
415-
@echo Flashing: $<
460+
@echo Flashing: $<
416461
@$(GDB_BMP) -nx --batch -ex 'load $<' -ex 'compare-sections' -ex 'kill'
417462

418463
gdb: $(BUILD)/$(OUT_FILE).out

0 commit comments

Comments
 (0)