Skip to content

Commit

Permalink
openocd: get flash and debug files from cli
Browse files Browse the repository at this point in the history
Get FLASH_FILE and ELFFILE from command line instead of environment variable.

The documentation was claiming ELFFILE was given as a command line argument
already, but is was not.
  • Loading branch information
cladmi committed Dec 5, 2018
1 parent 6551d8a commit a0b97ad
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 19 deletions.
2 changes: 1 addition & 1 deletion boards/seeeduino_arch-pro/Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
36 changes: 20 additions & 16 deletions dist/tools/openocd/openocd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,30 +17,33 @@
#
# The script supports the following actions:
#
# flash: flash a given ELF file to the target.
# flash: flash <image_file>
# flash given file to the target.
#
# options:
# IMAGE_FILE: Filename of the file that will be flashed
# <image_file>: 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. <image_file> 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 <elfile>
# starts OpenOCD as GDB server in the background and
# connects to the server with the GDB client specified by
# the board
#
# options:
# <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)
# 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
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -256,6 +256,7 @@ do_flash() {
}

do_debug() {
ELFFILE=$1
test_config
test_elffile
# temporary file that saves OpenOCD pid
Expand Down Expand Up @@ -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 ###"
Expand All @@ -350,6 +352,8 @@ case "${ACTION}" in
;;
*)
echo "Usage: $0 {flash|debug|debug-server|reset}"
echo " flash <flashfile>"
echo " debug <elffile>"
exit 2
;;
esac
4 changes: 2 additions & 2 deletions makefiles/tools/openocd.inc.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit a0b97ad

Please sign in to comment.