incubator-nuttx/boards/arm/str71x/olimex-strp711/scripts/oocd.sh

79 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Set up paths to binaries, scripts, configuration files
hostos=`uname -o 2>/dev/null || echo "Other"`
if [ "X${hostos}" = "XCygwin" ]; then
installdir=/cygdrive/c/gccfd/openocd/bin
ft2exe=$installdir/openocd-ftd2xx.exe
ppexe=$installdir/openocd-ppdev.exe
else
installdir=/usr/local/bin
ft2exe=$installdir/openocd
ppexe=$installdir/openocd
SUDO=sudo
fi
# The root to the top-level NuttX directory should be in an environment variable
if [ -z $STR41XSCRIPTS ]; then
echo "Environment variable $STR41XSCRIPTS is not defined"
echo "Has NuttX been configured?"
exit 1
fi
# Check that at least one configuration file exists at that point
if [ ! -f $STR41XSCRIPTS/oocd_ft2xx.cfg ]; then
echo "No configuration files found at $STR41XSCRIPTS"
echo "Path to configuration files unknown"
exit 1
fi
# Parse command line inputs
usage="USAGE: $0 [-h] [-d] [-pp] [-ft2xx]"
debug=no
oocdcfg=$STR41XSCRIPTS/oocd_ft2xx.cfg
openocd=$ft2exe
while [ ! -z "$1" ]; do
case $1 in
-d )
debug=yes
set -x
;;
-pp )
oocdcfg=$STR41XSCRIPTS/oocd_wiggler.cfg
openocd=$ppexe
;;
-ft2xx )
oocdcfg=$STR41XSCRIPTS/oocd_ft2xx.cfg
openocd=$ft2exe
;;
-h )
echo $usage
exit 0
;;
* )
echo "Unrecognized option: $1"
echo $usage
exit 1
;;
esac
shift
done
# Setup debug options
export options="-d 1"
# Run OpenOCD -- here it is assumed (1) that you must have root privileges to
# execute OpenOCD and (2) that your user is listed in the /etc/sudoers file.
$SUDO $openocd $options -f $oocdcfg
if [ "X${hostos}" = "XCygwin" ]; then
$openocd $options -f `cygpath -w $oocdcfg`
else
sudo $openocd $options -f $oocdcfg
fi