diff --git a/boards/seeeduino_arch-pro/Makefile.include b/boards/seeeduino_arch-pro/Makefile.include index 4d78e552fd..aa957e7bcd 100644 --- a/boards/seeeduino_arch-pro/Makefile.include +++ b/boards/seeeduino_arch-pro/Makefile.include @@ -11,7 +11,7 @@ include $(RIOTMAKE)/tools/serial.inc.mk DEBUG_ADAPTER ?= dap # this board uses openocd -export IMAGE_FILE = $(HEXFILE) +FFLAGS ?= flash $(HEXFILE) include $(RIOTMAKE)/tools/openocd.inc.mk # generate image checksum from hex file diff --git a/dist/tools/openocd/openocd.sh b/dist/tools/openocd/openocd.sh index 4973f8fb45..d9b0a4959d 100755 --- a/dist/tools/openocd/openocd.sh +++ b/dist/tools/openocd/openocd.sh @@ -17,30 +17,33 @@ # # The script supports the following actions: # -# flash: flash a given ELF file to the target. +# flash: flash +# flash given file to the target. # # options: -# IMAGE_FILE: Filename of the file that will be flashed +# : Filename of the file that will be flashed # PRE_FLASH_CHECK_SCRIPT: a command to run before flashing to -# verify the integrity of the image to be flashed. ELFFILE is +# verify the integrity of the image to be flashed. is # passed as a command line argument to this command. -# Even though the file name variable is named ELFFILE, flashing -# works with any file format recognized by OpenOCD (elf, ihex, s19, bin). # -# debug: starts OpenOCD as GDB server in the background and +# Flashing works with any file format recognized by OpenOCD +# (elf, ihex, s19, bin). +# +# debug: debug +# starts OpenOCD as GDB server in the background and # connects to the server with the GDB client specified by # the board # # options: +# : path to the file to debug, must be in a format +# recognized by GDB (preferably ELF, it will not +# work with .bin, .hex or .s19 because they lack +# symbol information) # GDB_PORT: port opened for GDB connections # TCL_PORT: port opened for TCL connections # TELNET_PORT: port opened for telnet connections # DBG: debugger client command, default: 'gdb -q' # TUI: if TUI!=null, the -tui option will be used -# ELFFILE: path to the file to debug, must be in a format -# recognized by GDB (preferably ELF, it will not -# work with .bin, .hex or .s19 because they lack -# symbol information) # # debug-server: starts OpenOCD as GDB server, but does not connect to # to it with any frontend. This might be useful when using @@ -93,10 +96,6 @@ # Default offset is 0, meaning the image will be flashed at the address that it # was linked at. : ${IMAGE_OFFSET:=0} -# Image file used for flashing. Must be in a format that OpenOCD can handle (ELF, -# Intel hex, S19, or raw binary) -# Default is to use $ELFFILE -: ${IMAGE_FILE:=${ELFFILE}} # Type of image, leave empty to let OpenOCD automatically detect the type from # the file (default). # Valid values: elf, hex, s19, bin (see OpenOCD manual for more information) @@ -210,6 +209,7 @@ _flash_address() { # now comes the actual actions # do_flash() { + IMAGE_FILE=$1 test_config test_imagefile if [ -n "${PRE_FLASH_CHECK_SCRIPT}" ]; then @@ -256,6 +256,7 @@ do_flash() { } do_debug() { + ELFFILE=$1 test_config test_elffile # temporary file that saves OpenOCD pid @@ -330,15 +331,16 @@ do_reset() { # parameter dispatching # ACTION="$1" +shift # pop $1 from $@ case "${ACTION}" in flash) echo "### Flashing Target ###" - do_flash + do_flash "$@" ;; debug) echo "### Starting Debugging ###" - do_debug + do_debug "$@" ;; debug-server) echo "### Starting GDB Server ###" @@ -350,6 +352,8 @@ case "${ACTION}" in ;; *) echo "Usage: $0 {flash|debug|debug-server|reset}" + echo " flash " + echo " debug " exit 2 ;; esac diff --git a/makefiles/tools/openocd.inc.mk b/makefiles/tools/openocd.inc.mk index 79d2e5390e..a307d93f46 100644 --- a/makefiles/tools/openocd.inc.mk +++ b/makefiles/tools/openocd.inc.mk @@ -3,8 +3,8 @@ export DEBUGGER = $(RIOTTOOLS)/openocd/openocd.sh export DEBUGSERVER = $(RIOTTOOLS)/openocd/openocd.sh export RESET ?= $(RIOTTOOLS)/openocd/openocd.sh -export FFLAGS ?= flash -export DEBUGGER_FLAGS ?= debug +export FFLAGS ?= flash $(ELFFILE) +export DEBUGGER_FLAGS ?= debug $(ELFFILE) export DEBUGSERVER_FLAGS ?= debug-server export RESET_FLAGS ?= reset