STM32GENERIC/tools/macosx/maple_upload

56 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -e
if [ $# -lt 4 ]; then
echo "Usage: $0 $# <dummy_port> <altID> <usbID> <binfile>" >&2
exit 1
fi
dummy_port=$1; altID=$2; usbID=$3; binfile=$4;dummy_port_fullpath="/dev/$1"
# Get the directory where the script is running.
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
# ----------------- Old code to reset the USB - which doesn't seem to work --------
#
#if we can find the Serial device try resetting it and then sleeping for 1 sec while the board reboots
#if [ -e $dummy_port_fullpath ]; then
# echo "resetting " $dummy_port_fullpath
# stty -f $dummy_port_fullpath 1200
# sleep 1
## stty -f $dummy_port_fullpath 1200
## sleep 1
#fi
# ------------------ End of old code -----------------
# ----------------- IMPORTANT -----------------
# The 2nd parameter to upload-reset is the delay after resetting before it exits
# This value is in milliseonds
# You may need to tune this to your system
# 750ms to 1500ms seems to work on my Mac
${DIR}/upload-reset ${dummy_port_fullpath} 750
if [ $# -eq 5 ]; then
dfuse_addr="--dfuse-address $5"
else
dfuse_addr=""
fi
#DFU_UTIL=/usr/local/bin/dfu-util
DFU_UTIL=${DIR}/dfu-util/dfu-util
if [ ! -x ${DFU_UTIL} ]; then
DFU_UTIL=/opt/local/bin/dfu-util
fi
if [ ! -x ${DFU_UTIL} ]; then
echo "$0: error: cannot find ${DFU_UTIL}" >&2
exit 2
fi
${DFU_UTIL} -d ${usbID} -a ${altID} -D ${binfile} -R ${dfuse_addr} -R
"${DIR}/wait_for_serial" ${dummy_port_fullpath}