2019-08-10 17:57:26 +02:00
|
|
|
#!/usr/bin/env bash
|
2012-11-21 19:19:49 +01:00
|
|
|
|
|
|
|
# Get command line parameters
|
|
|
|
|
|
|
|
USAGE="USAGE: $0 [-dh] <TOPDIR>"
|
|
|
|
ADVICE="Try '$0 -h' for more information"
|
|
|
|
|
|
|
|
unset DEBUG
|
|
|
|
|
|
|
|
while [ ! -z "$1" ]; do
|
|
|
|
case $1 in
|
|
|
|
-d )
|
|
|
|
set -x
|
|
|
|
DEBUG=-d3
|
|
|
|
;;
|
|
|
|
-h )
|
|
|
|
echo "$0 is a tool for generation of proper version files for the NuttX build"
|
|
|
|
echo ""
|
|
|
|
echo $USAGE
|
|
|
|
echo ""
|
|
|
|
echo "Where:"
|
|
|
|
echo " -d"
|
|
|
|
echo " Enable script debug"
|
|
|
|
echo " -h"
|
|
|
|
echo " show this help message and exit"
|
|
|
|
echo " Use the OpenOCD 0.4.0"
|
|
|
|
echo " <TOPDIR>"
|
|
|
|
echo " The full path to the top-level NuttX directory"
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
* )
|
|
|
|
break;
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
|
|
|
TOPDIR=$1
|
|
|
|
if [ -z "${TOPDIR}" ]; then
|
|
|
|
echo "Missing argument"
|
|
|
|
echo $USAGE
|
|
|
|
echo $ADVICE
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# This script *probably* only works with the following versions of OpenOCD:
|
|
|
|
|
|
|
|
# Local search directory and configurations
|
|
|
|
|
2019-08-19 17:16:08 +02:00
|
|
|
OPENOCD_SEARCHDIR="${TOPDIR}/boards/arm/stm32/shenzhou/tools"
|
2012-11-21 19:19:49 +01:00
|
|
|
OPENOCD_WSEARCHDIR="`cygpath -w ${OPENOCD_SEARCHDIR}`"
|
|
|
|
|
|
|
|
OPENOCD_PATH="/cygdrive/c/Program Files (x86)/OpenOCD/0.4.0/bin"
|
|
|
|
OPENOCD_EXE=openocd.exe
|
|
|
|
OPENOCD_INTERFACE="olimex-arm-usb-ocd.cfg"
|
|
|
|
|
|
|
|
OPENOCD_TARGET="stm32.cfg"
|
|
|
|
OPENOCD_ARGS="${DEBUG} -s ${OPENOCD_WSEARCHDIR} -f ${OPENOCD_INTERFACE} -f ${OPENOCD_TARGET}"
|
|
|
|
|
|
|
|
echo "Trying OpenOCD 0.4.0 path: ${OPENOCD_PATH}/${OPENOCD_EXE}"
|
|
|
|
|
|
|
|
# Verify that everything is what it claims it is and is located where it claims it is.
|
|
|
|
|
|
|
|
if [ ! -x "${OPENOCD_PATH}/${OPENOCD_EXE}" ]; then
|
|
|
|
echo "OpenOCD executable does not exist: ${OPENOCD_PATH}/${OPENOCD_EXE}"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
if [ ! -f "${OPENOCD_SEARCHDIR}/${OPENOCD_TARGET}" ]; then
|
|
|
|
echo "OpenOCD target config file does not exist: ${OPENOCD_SEARCHDIR}/${OPENOCD_TARGET}"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
if [ ! -f "${OPENOCD_SEARCHDIR}/${OPENOCD_INTERFACE}" ]; then
|
|
|
|
echo "OpenOCD interface config file does not exist: ${OPENOCD_SEARCHDIR}/${OPENOCD_INTERFACE}"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Enable debug if so requested
|
|
|
|
|
|
|
|
if [ "X$2" = "X-d" ]; then
|
|
|
|
OPENOCD_ARGS=$OPENOCD_ARGS" -d3"
|
|
|
|
set -x
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Okay... do it!
|
|
|
|
|
|
|
|
echo "Starting OpenOCD"
|
|
|
|
"${OPENOCD_PATH}/${OPENOCD_EXE}" ${OPENOCD_ARGS} &
|
|
|
|
echo "OpenOCD daemon started"
|
|
|
|
ps -ef | grep openocd
|
|
|
|
echo "In GDB: target remote localhost:3333"
|