#!/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