# This board uses OpenOCD. Note that support for QN908x in OpenOCD at the time # of writing has not been merged in the tree and is only available at # http://openocd.zylin.com/#/c/5584/ . PROGRAMMER ?= openocd PROGRAMMERS_SUPPORTED += openocd # Using dap or jlink depends on which firmware the OpenSDA debugger is running #OPENOCD_DEBUG_ADAPTER ?= dap OPENOCD_DEBUG_ADAPTER ?= jlink # Use the shared OpenOCD configuration OPENOCD_CONFIG ?= $(RIOTBOARD)/common/qn908x/dist/openocd.cfg # Disable the watchdog when flashing. OpenOCD runs a CRC program in RAM to # verify the image, which needs to have the WDT disabled but it is normally # enabled after a 'reset halt' command. OPENOCD_PRE_FLASH_CMDS += "-c qn908x disable_wdog" # In order to boot, the CPU requires that the Vector table contain a valid # checksum in one of the "reserved" fields. We don't generate this checksum when # compiling and linking the code, instead this make target computes the checksum # in another ELF file and we set it as the FLASHFILE. ELFFILE ?= $(BINDIR)/$(APPLICATION).elf ELFFILE_CHECKSUM ?= $(ELFFILE:.elf=-checksum.elf) $(ELFFILE_CHECKSUM): $(ELFFILE) $(Q)$(OBJCOPY) --dump-section .vectors=$<.vectors $< $(Q)$(RIOTBOARD)/common/qn908x/dist/nxp_checksum.py $(if $(Q),--quiet) \ $<.vectors $(Q)$(OBJCOPY) --update-section .vectors=$<.vectors $< $@ FLASHFILE ?= $(ELFFILE_CHECKSUM)