X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=LoadFile%2Fwinload.teensy;h=492819726743f93ce7d77c24d05ed75652873217;hb=0e6f107ea108bea0b179bcc2a2ac17d3ba49e1a7;hp=f22d70402e75e039a55b07fb0a15d8b4ca94e301;hpb=3b06d8f6ae2ed8af492a26b8a356ce49c56cebd6;p=kiibohd-controller.git diff --git a/LoadFile/winload.teensy b/LoadFile/winload.teensy index f22d704..4928197 100755 --- a/LoadFile/winload.teensy +++ b/LoadFile/winload.teensy @@ -1,17 +1,69 @@ -#!/bin/bash +#!/usr/bin/env bash +# Convenience script for loading firmware onto a teensy type device +# By default, initiates teensy-load-cli -#| First check to see teensy-loader-cli has been compiled +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 "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 cd teensy-loader-cli cmake -G "Unix Makefiles" $(cygpath -u @CMAKE_SOURCE_DIR@/LoadFile) - make + make || exit 3 cd - fi -#| Loads the hex file onto the teensy +# 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 + +# Loads the hex file onto the teensy teensy-loader-cli/teensy-loader-cli -mmcu=@MCU@ -w @TARGET_HEX@ +EXIT_STATUS=$? -exit $? +exit $EXIT_STATUS