summaryrefslogtreecommitdiff
path: root/scripts/upload
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/upload')
-rwxr-xr-xscripts/upload34
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/upload b/scripts/upload
new file mode 100755
index 0000000..66e9ed8
--- /dev/null
+++ b/scripts/upload
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+set -e
+set -o pipefail
+
+unset elf
+unset cfg
+unset openocd
+unset gdb
+while [[ "$1" != "" ]]
+do
+ case "$1"
+ in
+ --elf) elf="$2"; shift 2;;
+ --openocd) openocd="$2"; shift 2;;
+ --openocd-config) cfg="$2"; shift 2;;
+ --gdb) gdb="$2"; shift 2;;
+ *) echo "$0: Unknown argument $1"; exit 1;;
+ esac
+done
+
+if [[ "$elf" == "" ]]
+then
+ echo "$0: --elf is required" >&2
+ exit 1
+fi
+
+export GDB_PORT=3333
+
+$openocd -f $cfg &
+
+$gdb $elf --batch -ex "set remotetimeout 240" -ex "target extended-remote localhost:${GDB_PORT}" -ex "monitor reset halt" -ex "monitor flash protect 0 64 last off" -ex "load" -ex "monitor resume" -ex "monitor shutdown" -ex "quit"
+
+kill %1