aboutsummaryrefslogtreecommitdiff
path: root/bin/flash-target
diff options
context:
space:
mode:
Diffstat (limited to 'bin/flash-target')
-rwxr-xr-xbin/flash-target38
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