rodos_template/openocd/stm32f4-load
2021-04-26 17:27:16 +02:00

78 lines
1.9 KiB
Bash
Executable File

#! /bin/bash
#if [ -z $RODOS_ROOT ]; then
# source `dirname $0`/print_no_envs_warning
#fi
#source ${RODOS_MAKES}/stm32f4-set-vars
FLASH_TOOL=openocd
FLASH_TOOL_PATH=/usr/bin
OBJCOPY=arm-none-eabi-objcopy
OBJCOPY_PATH=
ELF_NAME=$1
if [ -x ${FLASH_TOOL_PATH}/${FLASH_TOOL} ]; then
echo "${FLASH_TOOL}: installed"
FLASH_TOOL=${FLASH_TOOL_PATH}/${FLASH_TOOL}
else
# look for flash tool in default path
command -v ${FLASH_TOOL} >/dev/null 2>&1 || { echo "${FLASH_TOOL}: NOT installed" >&2; exit 1; }
echo "${FLASH_TOOL}: installed "
FLASH_TOOL="$(command -v ${FLASH_TOOL})"
fi
if [ -x $OBJCOPY_PATH/$OBJCOPY ]; then
echo "$OBJCOPY: installed"
OBJCOPY=${OBJCOPY_PATH}/${OBJCOPY}
else
# look for objcopy in default path
command -v ${OBJCOPY} >/dev/null 2>&1 || { echo "${OBJCOPY}: NOT installed" >&2; exit 1; }
echo "${OBJCOPY}: installed"
OBJCOPY="$(command -v ${OBJCOPY})"
fi
#if [ -f ./${ARCH}.elf ]; then
# echo "${ARCH}.elf: OK"
rm stm32f4.hex &> /dev/null
$OBJCOPY -O ihex ${ELF_NAME} stm32f4.hex
#else
# echo "${ARCH}.elf: FAIL"
# exit 1;
#fi
#if [ -f ./${ELF_NAME}.hex ]; then
# echo "${ARCH}.hex: OK"
#else
# echo "${ARCH}.hex: FAIL"
# exit 1;
#fi
if [ ! -f /etc/udev/rules.d/49-stlinkv1.rules -o ! -f /etc/udev/rules.d/49-stlinkv2.rules ]
then
echo "superuser password needed to access USB-Port"
# mount rule for stlink1
echo "SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"0483\", ATTRS{idProduct}==\"3744\", MODE:=\"0666\", SYMLINK+=\"stlinkv1_%n\"" > 49-stlinkv1.rules
# mount rule for stlink2
echo "SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"0483\", ATTRS{idProduct}==\"3748\", MODE:=\"0666\", SYMLINK+=\"stlinkv2_%n\"" > 49-stlinkv2.rules
sudo mv 49-stlinkv1.rules /etc/udev/rules.d/
sudo mv 49-stlinkv2.rules /etc/udev/rules.d/
sudo udevadm trigger
sudo udevadm control --reload-rules
sleep 1s
fi
echo "flashing ..."
${FLASH_TOOL} -f $(dirname "$0")/openocd_flash.cfg