diff --git a/boards/common/nrf52/Makefile.include b/boards/common/nrf52/Makefile.include index 269a84f145cad0d415540c62ad36bc8464c49ed7..f8e47e1b57d58fb349e71b38ff138e0e70ede920 100644 --- a/boards/common/nrf52/Makefile.include +++ b/boards/common/nrf52/Makefile.include @@ -9,24 +9,32 @@ PORT_LINUX ?= /dev/ttyACM0 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*))) include $(RIOTMAKE)/tools/serial.inc.mk -# define jlink as default programmer, but overridable -PROGRAMMER ?= jlink +# The following configuration is dependencies specific +# but they are resolved later +# Hack to know now if 'nordic_softdevice_ble' is used +include $(RIOTBOARD)/$(BOARD)/Makefile.dep +PROGRAMMER ?= jlink ifeq (jlink,$(PROGRAMMER)) # setup JLink for flashing export JLINK_DEVICE := nrf52 - # The following configuration is dependencies specific - # but they are resolved later - # Hack to know now if 'nordic_softdevice_ble' is used - include $(RIOTBOARD)/$(BOARD)/Makefile.dep - # special options when using SoftDevice ifneq (,$(filter nordic_softdevice_ble,$(USEPKG))) export JLINK_PRE_FLASH := erase\nloadfile $(BINDIR)/softdevice.hex export FLASH_ADDR := 0x1f000 export LINKER_SCRIPT ?= $(RIOTCPU)/$(CPU)/ldscripts/$(CPU_MODEL)_sd.ld endif - include $(RIOTMAKE)/tools/jlink.inc.mk +else ifeq (openocd,$(PROGRAMMER)) + # setup OpenOCD for flashing. Version 0.10 of OpenOCD doesn't contain support + # for nrf52dk and nrf52840dk boards. To use OpenOCD with these a version + # build from source (master > 2018, August the 13rd) is required. + ifneq (,$(filter nordic_softdevice_ble,$(USEPKG))) + # openocd doesn't work (yet) with softdevice + $(error Cannot use OpenOCD with nordic_softdevice module) + endif + export DEBUG_ADAPTER ?= jlink + export OPENOCD_CONFIG := $(RIOTBOARD)/common/nrf52/dist/openocd.cfg + include $(RIOTMAKE)/tools/openocd.inc.mk endif diff --git a/boards/common/nrf52/dist/openocd.cfg b/boards/common/nrf52/dist/openocd.cfg new file mode 100644 index 0000000000000000000000000000000000000000..75659d4ab39769f20b90d655592105b39e6d3f2a --- /dev/null +++ b/boards/common/nrf52/dist/openocd.cfg @@ -0,0 +1,3 @@ +transport select swd + +source [find target/nrf52.cfg]