78 lines
1.9 KiB
Bash
Executable File
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 |