diff --git a/dist/tools/edbg/edbg.sh b/dist/tools/edbg/edbg.sh new file mode 100755 index 0000000000..e1ee99874f --- /dev/null +++ b/dist/tools/edbg/edbg.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +# Default edbg command +: "${EDBG:=edbg}" +# Edbg command base arguments +: "${EDBG_ARGS:=}" + +test_imagefile() { + if [ ! -f "${IMAGE_FILE}" ]; then + echo "Error: Unable to locate IMAGE_FILE" + echo " (${IMAGE_FILE})" + exit 1 + fi +} + +do_flash() { + IMAGE_FILE=$1 + test_imagefile + + # Configure edbg flash flags + local _fflags="${EDBG_ARGS} --verbose --file ${IMAGE_FILE} --verify" + + # flash device + sh -c "${EDBG} ${_fflags} || ${EDBG} ${_fflags} --program" && echo 'Done flashing' +} + +do_reset() { + sh -c "${EDBG} ${EDBG_ARGS}" +} + +# +# parameter dispatching +# +ACTION="$1" +shift # pop $1 from $@ + +case "${ACTION}" in + flash) + echo "### Flashing Target ###" + do_flash "$@" + ;; + reset) + echo "### Resetting Target ###" + do_reset + ;; + *) + echo "Usage: $0 {flash|reset}" + echo " flash " + exit 2 + ;; +esac