freedv-gui/codec2-1.2.0/stm32/unittest/scripts/run_stm32_prog

92 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
#######################################
# Parse command line options
# Options (starting with "--") are stored in $ARGS.
# Non-options are taken as the test name (last one sticks).
declare -A ARGS
for arg in "$@"; do
if [[ ${arg} == --* ]] ; then ARGS[${arg}]=true
else ELF=${arg}
fi
done
# Add the parameters for connecting via ssh to
# your machine with an stm32 connected to
# UT_SSH_PARAMS
# e.g.
# UT_SSH_PARAMS="-p 22 user@host_with_stm32"
if [ -z "$UT_SSH_PARAMS" ]; then
UT_SSH=""
UT_SLEEP=${UT_SLEEP:=1}
UI_SH_FIO="disable"
else
UT_SSH="ssh -f -L 3333:localhost:3333 $UT_SSH_PARAMS"
UT_SLEEP=${UT_SLEEP:=4}
UT_SH_FIO="enable"
fi
rm -f gdb_cmds
if [ ! ${ARGS[--st-util]+_} ] ; then
# OpenOCD
if [ -n "$UT_SSH" ]; then
cat <<-EEOOFF >> gdb_cmds
shell ${UT_SSH} killall -q openocd\; sleep 1\; openocd -d0 -f board/stm32f4discovery.cfg 2> >(tee stderr.log >&2) | tee stdout.log &
EEOOFF
else
cat <<-EEOOFF >> gdb_cmds
shell killall -q openocd
shell openocd -d0 -f board/stm32f4discovery.cfg 2> >(tee stderr.log >&2) | tee stdout.log &
EEOOFF
fi
cat <<-EEOOFF >> gdb_cmds
shell sleep ${UT_SLEEP}
target remote :3333
monitor arm semihosting enable
monitor arm semihosting_fileio $UT_SH_FIO
EEOOFF
SHUTDOWN="monitor shutdown"
else
# ST-Util
echo "---------------------- STARTING gdb/st-util ------------------------------"
cat <<-EEOOFF >> gdb_cmds
shell st-util --verbose=0 --semihosting 2>stutil_stderr.log >stutil_stdout.log &
shell sleep ${UT_SLEEP}
target remote :4242
EEOOFF
SHUTDOWN=""
fi
if [ ! ${ARGS[--noload]+_} ] ; then
cat <<-EEOOFF >> gdb_cmds
load
EEOOFF
fi
cat <<-EEOOFF >> gdb_cmds
monitor reset halt
monitor adapter speed 4000
break EndofMain
break abort
EEOOFF
if [ -z ${ARGS[--debug]+_} ] ; then
cat <<-EEOOFF >> gdb_cmds
shell printf "\n----------------------------STARTING PROGRAM-------------------------\n\n"
continue
set confirm off
$SHUTDOWN
quit
EEOOFF
arm-none-eabi-gdb -batch -x gdb_cmds ${ELF}
else
arm-none-eabi-gdb -x gdb_cmds ${ELF}
fi