diff options
Diffstat (limited to 'bin/flash-target')
-rwxr-xr-x | bin/flash-target | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/bin/flash-target b/bin/flash-target new file mode 100755 index 0000000..cef709d --- /dev/null +++ b/bin/flash-target @@ -0,0 +1,38 @@ +#!/bin/sh + +PROJ="${1?'project'}" +OPENOCD=openocd + +# location of OpenOCD Board .cfg files (only used with 'make flash-target') +# +# This path is from Ubuntu 14.04. +# +OPENOCD_BOARD_DIR=/usr/share/openocd/scripts/board + +# Configuration (cfg) file containing programming directives for OpenOCD +# +# If you are using an STLINK v2.0 from an STM32 F4 DISCOVERY board, +# set this variable to "stm32f4discovery.cfg". +# +# If you are using an STLINK v2.1 from an STM32 F4 NUCLEO board, +# set this variable to "st_nucleo_f401re.cfg". +# +# If you are using something else, look for a matching configuration file in +# the OPENOCD_BOARD_DIR directory. +# +OPENOCD_PROC_FILE=stm32f4discovery.cfg +if [ "x`lsusb -d 0483:374b`" != "x" ]; then + for fn in st_nucleo_f4.cfg st_nucleo_f401re.cfg; do + if [ -f "$OPENOCD_BOARD_DIR/$fn" ]; then + OPENOCD_PROC_FILE="$fn" + fi + done +fi + +# This used to be "... verify reset exit", but that fails on Debian Jessie. +# The Net of a Million Lies claims that the "exit" is unnecessary, so the +# simplest solution is just to omit it. Should this turn out to be a mistake, +# well, we'll have to do something more clever to deal with these silly version +# skew problems between the several versions of openocd in current use. + +$OPENOCD -f $OPENOCD_BOARD_DIR/$OPENOCD_PROC_FILE -c "program $PROJ.elf verify exit" # reset |