# HG changeset patch # User Jacob Alexander # Date 1423526287 28800 # Node ID 2a3468f5d8beb4720c89c5fe674c5d45fafc2edb # Parent d5bf41d7f7ef449a49318c362566102ebca0c527 Updating load scripts with command line arguments - Fastload option (allows for remote flashing) - Autoscreen option initiates screen after successfully loading the firmware diff -r d5bf41d7f7ef -r 2a3468f5d8be LoadFile/load.dfu --- a/LoadFile/load.dfu Mon Feb 09 13:21:23 2015 -0800 +++ b/LoadFile/load.dfu Mon Feb 09 15:58:07 2015 -0800 @@ -1,8 +1,67 @@ #!/bin/bash +# Convenience script for loading firmware onto a dfu type device +# By default, initiates dfu-util + +SERIAL_PORT="" +AUTO_SCREEN_SESSION="" +PROG_NAME=$(basename $0) + +# Parse all the command line arguments +while (( "$#" >= "1" )); do + # Scan each argument + key="$1" + case $key in + -a|--autoscreen) + AUTO_SCREEN_SESSION="$2" + shift + ;; + -f|--fastload) + SERIAL_PORT="$2" + shift + ;; + -h|--help) + echo "Usage: $PROG_NAME [options...]" + echo "" + echo "Loads the most recent built firmware (@TARGET_BIN@) to the device." + echo " (load.dfu)" + echo "" + echo "Arguments:" + echo " -a, --autoscreen SERIAL_PORT Use screen on the specified serial port after loading." + echo " e.g. /dev/ttyACM0" + echo " -f, --fastload SERIAL_PORT Send the reload command to the debug terminal." + echo " e.g. /dev/ttyACM0" + echo " NOTE: May not work due to non-functional terminal, or disable remote flashing" + echo " -h, --help This message." + exit 1 + ;; + *) + echo "INVALID ARG: '$1'" + exit 2 + ;; + esac + + # Shift to the next argument + shift +done + +# If a SERIAL_PORT was specified set the uC into reflash mode +# XXX May not be successful if uC is not in a good state (or does not allow remote flashing) +if [[ "$SERIAL_PORT" != "" ]] && [[ -e "$SERIAL_PORT" ]]; then + echo "NOTE: This may fail if the uC is in a bad state or does not support remote flashing" + printf "reload\r" > $SERIAL_PORT + sleep 1 +fi # Load via dfu-util # Used for McHCK based uCs dfu-util -D @TARGET_BIN@ +EXIT_STATUS=$? -exit $? +# Load Screen Session if specified +if (( "$EXIT_STATUS" == "0" )) && [[ "$AUTO_SCREEN_SESSION" != "" ]]; then + sleep 0.1 + screen $AUTO_SCREEN_SESSION +fi +exit $EXIT_STATUS + diff -r d5bf41d7f7ef -r 2a3468f5d8be LoadFile/load.teensy --- a/LoadFile/load.teensy Mon Feb 09 13:21:23 2015 -0800 +++ b/LoadFile/load.teensy Mon Feb 09 15:58:07 2015 -0800 @@ -1,6 +1,50 @@ #!/bin/bash +# Convenience script for loading firmware onto a teensy type device +# By default, initiates teensy-load-cli + +SERIAL_PORT="" +AUTO_SCREEN_SESSION="" +PROG_NAME=$(basename $0) -#| First check to see teensy-loader-cli has been compiled +# Parse all the command line arguments +while (( "$#" >= "1" )); do + # Scan each argument + key="$1" + case $key in + -a|--autoscreen) + AUTO_SCREEN_SESSION="$2" + shift + ;; + -f|--fastload) + SERIAL_PORT="$2" + shift + ;; + -h|--help) + echo "Usage: $PROG_NAME [options...]" + echo "" + echo "Loads the most recent built firmware (@TARGET_BIN@) to the device." + echo " (load.teensy)" + echo "" + echo "Arguments:" + echo " -a, --autoscreen SERIAL_PORT Use screen on the specified serial port after loading." + echo " e.g. /dev/ttyACM0" + echo " -f, --fastload SERIAL_PORT Send the reload command to the debug terminal." + echo " e.g. /dev/ttyACM0" + echo " NOTE: May not work due to non-functional terminal, or disable remote flashing" + echo " -h, --help This message." + exit 1 + ;; + *) + echo "INVALID ARG: '$1'" + exit 2 + ;; + esac + + # Shift to the next argument + shift +done + +# First check to see teensy-loader-cli has been compiled if [ ! -e teensy-loader-cli/teensy-loader-cli ]; then # Compile teensy-loader-cli mkdir -p teensy-loader-cli @@ -10,8 +54,23 @@ cd - fi -#| Loads the hex file onto the teensy -teensy-loader-cli/teensy-loader-cli -mmcu=@MCU@ -w @TARGET_HEX@ +# If a SERIAL_PORT was specified set the uC into reflash mode +# XXX May not be successful if uC is not in a good state (or does not allow remote flashing) +if [[ "$SERIAL_PORT" != "" ]] && [[ -e "$SERIAL_PORT" ]]; then + echo "NOTE: This may fail if the uC is in a bad state or does not support remote flashing" + printf "reload\r" > $SERIAL_PORT + sleep 1 +fi -exit $? +# Loads the hex file onto the teensy +teensy-loader-cli/teensy-loader-cli -mmcu=@MCU@ -w @TARGET_HEX@ +EXIT_STATUS=$? +# Load Screen Session if specified +if (( "$EXIT_STATUS" == "0" )) && [[ "$AUTO_SCREEN_SESSION" != "" ]]; then + sleep 0.1 + screen $AUTO_SCREEN_SESSION +fi + +exit $EXIT_STATUS + diff -r d5bf41d7f7ef -r 2a3468f5d8be LoadFile/winload.teensy --- a/LoadFile/winload.teensy Mon Feb 09 13:21:23 2015 -0800 +++ b/LoadFile/winload.teensy Mon Feb 09 15:58:07 2015 -0800 @@ -1,6 +1,49 @@ #!/bin/bash +# Convenience script for loading firmware onto a teensy type device +# By default, initiates teensy-load-cli + +SERIAL_PORT="" +AUTO_SCREEN_SESSION="" +PROG_NAME=$(basename $0) -#| First check to see teensy-loader-cli has been compiled +# Parse all the command line arguments +while (( "$#" >= "1" )); do + # Scan each argument + key="$1" + case $key in + -a|--autoscreen) + AUTO_SCREEN_SESSION="$2" + shift + ;; + -f|--fastload) + SERIAL_PORT="$2" + shift + ;; + -h|--help) + echo "Usage: $PROG_NAME [options...]" + echo "" + echo "Loads the most recent built firmware (@TARGET_BIN@) to the device." + echo "Requires Cygwin." + echo " (winload.teensy)" + echo "" + echo "Arguments:" + echo " -f, --fastload SERIAL_PORT Send the reload command to the debug terminal." + echo " e.g. /dev/ttyACM0" + echo " NOTE: May not work due to non-functional terminal, or disable remote flashing" + echo " -h, --help This message." + exit 1 + ;; + *) + echo "INVALID ARG: '$1'" + exit 2 + ;; + esac + + # Shift to the next argument + shift +done + +# First check to see teensy-loader-cli has been compiled if [ ! -e teensy-loader-cli/teensy-loader-cli ]; then # Compile teensy-loader-cli mkdir -p teensy-loader-cli @@ -10,8 +53,17 @@ cd - fi -#| Loads the hex file onto the teensy -teensy-loader-cli/teensy-loader-cli -mmcu=@MCU@ -w @TARGET_HEX@ +# If a SERIAL_PORT was specified set the uC into reflash mode +# XXX May not be successful if uC is not in a good state (or does not allow remote flashing) +if [[ "$SERIAL_PORT" != "" ]] && [[ -e "$SERIAL_PORT" ]]; then + echo "NOTE: This may fail if the uC is in a bad state or does not support remote flashing" + printf "reload\r" > $SERIAL_PORT + sleep 1 +fi -exit $? +# Loads the hex file onto the teensy +teensy-loader-cli/teensy-loader-cli -mmcu=@MCU@ -w @TARGET_HEX@ +EXIT_STATUS=$? +exit $EXIT_STATUS +