aboutsummaryrefslogtreecommitdiff
path: root/bin/flash-target
blob: cef709d8302021db9a458074d5af383f254e866a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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