1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

openocd: get flash and debug files from cli

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.
This commit is contained in:
Gaëtan Harter 2018-03-26 20:08:49 +02:00
parent 6551d8aac0
commit a0b97ad737
No known key found for this signature in database
GPG Key ID: 76DF6BCF1B1F883B
3 changed files with 23 additions and 19 deletions

View File

@ -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

View File

@ -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
@ -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 <flashfile>"
echo " debug <elffile>"
exit 2
;;
esac

View File

@ -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