Zoltan Hudak / QtCreator_Support
Committer:
hudakz
Date:
Sun Aug 23 19:48:40 2020 +0000
Revision:
6:f3529afba368
Parent:
5:ace99c9d0e4e
Child:
7:b567983e76f4
Mbed support for QtCreator IDE.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hudakz 5:ace99c9d0e4e 1 #!/bin/bash
hudakz 5:ace99c9d0e4e 2
hudakz 5:ace99c9d0e4e 3 echo off
hudakz 5:ace99c9d0e4e 4
hudakz 5:ace99c9d0e4e 5 MBED_SYS_PATH=~/src/arm/sys
hudakz 5:ace99c9d0e4e 6 LIB_PATH=~/src/arm/lib
hudakz 5:ace99c9d0e4e 7 OS=6
hudakz 5:ace99c9d0e4e 8 PROF=DEBUG
hudakz 5:ace99c9d0e4e 9 PROJ_NAME=${PWD##*/}
hudakz 5:ace99c9d0e4e 10 PORT=/dev/ttyACM0
hudakz 5:ace99c9d0e4e 11
hudakz 5:ace99c9d0e4e 12 MACROS=()
hudakz 5:ace99c9d0e4e 13 SRC_LIB_PATH=()
hudakz 5:ace99c9d0e4e 14 while [[ $# -gt 0 ]]
hudakz 5:ace99c9d0e4e 15 do
hudakz 5:ace99c9d0e4e 16 key="$1"
hudakz 5:ace99c9d0e4e 17
hudakz 5:ace99c9d0e4e 18 case $key in
hudakz 6:f3529afba368 19 all|-f)
hudakz 5:ace99c9d0e4e 20 FLASH='-f'
hudakz 5:ace99c9d0e4e 21 shift # past argument
hudakz 5:ace99c9d0e4e 22 ;;
hudakz 5:ace99c9d0e4e 23 -c|clean)
hudakz 5:ace99c9d0e4e 24 CLEAN='-c'
hudakz 5:ace99c9d0e4e 25 shift # past argument
hudakz 5:ace99c9d0e4e 26 ;;
hudakz 5:ace99c9d0e4e 27 -D|--macro)
hudakz 5:ace99c9d0e4e 28 MACROS+=('-D '$2)
hudakz 5:ace99c9d0e4e 29 shift # past argument
hudakz 5:ace99c9d0e4e 30 shift # past value
hudakz 5:ace99c9d0e4e 31 ;;
hudakz 5:ace99c9d0e4e 32 -l)
hudakz 5:ace99c9d0e4e 33 SRC_LIB_PATH+=' --source '${LIB_PATH}/$2
hudakz 5:ace99c9d0e4e 34 shift # past argument
hudakz 5:ace99c9d0e4e 35 shift # past value
hudakz 5:ace99c9d0e4e 36 ;;
hudakz 5:ace99c9d0e4e 37 -m)
hudakz 5:ace99c9d0e4e 38 MCU="$2"
hudakz 5:ace99c9d0e4e 39 shift # past argument
hudakz 5:ace99c9d0e4e 40 shift # past value
hudakz 5:ace99c9d0e4e 41 ;;
hudakz 5:ace99c9d0e4e 42 -os)
hudakz 5:ace99c9d0e4e 43 OS="$2"
hudakz 5:ace99c9d0e4e 44 shift # past argument
hudakz 5:ace99c9d0e4e 45 shift # past value
hudakz 5:ace99c9d0e4e 46 ;;
hudakz 5:ace99c9d0e4e 47 -p|--port)
hudakz 5:ace99c9d0e4e 48 PORT="$2"
hudakz 5:ace99c9d0e4e 49 shift # past argument
hudakz 5:ace99c9d0e4e 50 shift # past value
hudakz 5:ace99c9d0e4e 51 ;;
hudakz 5:ace99c9d0e4e 52 -r|--release)
hudakz 5:ace99c9d0e4e 53 PROF=RELEASE
hudakz 5:ace99c9d0e4e 54 shift # past argument
hudakz 5:ace99c9d0e4e 55 ;;
hudakz 5:ace99c9d0e4e 56 *) # additional args
hudakz 5:ace99c9d0e4e 57 ARGS+=("$key $2")
hudakz 5:ace99c9d0e4e 58 shift # past argument
hudakz 5:ace99c9d0e4e 59 ;;
hudakz 5:ace99c9d0e4e 60 esac
hudakz 5:ace99c9d0e4e 61 done
hudakz 0:e5c84595673c 62
hudakz 5:ace99c9d0e4e 63 if [ ${OS} == 2 ]
hudakz 5:ace99c9d0e4e 64 then
hudakz 5:ace99c9d0e4e 65 GCC_ARM_PATH=/opt/gcc-arm-none-eabi-6-2017-q2-update
hudakz 5:ace99c9d0e4e 66 MBED_OS_PATH=${MBED_SYS_PATH}/mbed
hudakz 5:ace99c9d0e4e 67 CUSTOM_TARGETS_PATH=${MBED_SYS_PATH}/custom_targets/mbed
hudakz 5:ace99c9d0e4e 68 PROFILE=debug
hudakz 5:ace99c9d0e4e 69 if [ ${PROF} == RELEASE ]
hudakz 5:ace99c9d0e4e 70 then
hudakz 5:ace99c9d0e4e 71 PROFILE=release
hudakz 5:ace99c9d0e4e 72 fi
hudakz 5:ace99c9d0e4e 73 else
hudakz 5:ace99c9d0e4e 74 GCC_ARM_PATH=/opt/gcc-arm-none-eabi-9-2019-q4-major
hudakz 5:ace99c9d0e4e 75 MBED_OS_PATH=${MBED_SYS_PATH}/mbed-os
hudakz 5:ace99c9d0e4e 76 CUSTOM_TARGETS_PATH=${MBED_SYS_PATH}/custom_targets/mbed-os
hudakz 5:ace99c9d0e4e 77 PROFILE=${MBED_SYS_PATH}/mbed-os/tools/profiles/debug.json
hudakz 5:ace99c9d0e4e 78 if [ ${PROF} == RELEASE ]
hudakz 5:ace99c9d0e4e 79 then
hudakz 5:ace99c9d0e4e 80 PROFILE=${MBED_SYS_PATH}/mbed-os/tools/profiles/release.json
hudakz 5:ace99c9d0e4e 81 fi
hudakz 5:ace99c9d0e4e 82 fi
hudakz 5:ace99c9d0e4e 83
hudakz 5:ace99c9d0e4e 84 mbed config -G GCC_ARM_PATH ${GCC_ARM_PATH}/bin
hudakz 5:ace99c9d0e4e 85 mbed config -G MBED_OS_DIR ${MBED_OS_PATH}
hudakz 5:ace99c9d0e4e 86 if ! [ -f ./.mbed ]
hudakz 5:ace99c9d0e4e 87 then
hudakz 5:ace99c9d0e4e 88 mbed new .
hudakz 5:ace99c9d0e4e 89 fi
hudakz 5:ace99c9d0e4e 90 mbed export -i qtcreator -m ${MCU} --source . --source ${CUSTOM_TARGETS_PATH} --source ${MBED_OS_PATH} --source ${GCC_ARM_PATH}/arm-none-eabi/include ${SRC_LIB_PATH}
hudakz 5:ace99c9d0e4e 91 #mbed export -i vscode_gcc_arm -m ${MCU} --source . --source ${CUSTOM_TARGETS_PATH} --source ${MBED_OS_PATH} --source ${GCC_ARM_PATH}/arm-none-eabi/include ${SRC_LIB_PATH}
hudakz 5:ace99c9d0e4e 92 mbed compile -t GCC_ARM -m ${MCU} ${ARGS} --source . --source ${CUSTOM_TARGETS_PATH} --source ${MBED_OS_PATH} ${SRC_LIB_PATH} $CLEAN --profile ${PROFILE}
hudakz 5:ace99c9d0e4e 93
hudakz 5:ace99c9d0e4e 94 #if [ "${MCU}" == "LPC1768DBG" ]
hudakz 5:ace99c9d0e4e 95 #then
hudakz 5:ace99c9d0e4e 96 # ${GCC_ARM_PATH}/bin/arm-none-eabi-objcopy -I binary -O ihex ./BUILD/${MCU}/GCC_ARM-${PROF}/${PROJ_NAME}.bin ./BUILD/${MCU}/GCC_ARM-${PROF}/${PROJ_NAME}.hex
hudakz 5:ace99c9d0e4e 97 #fi
hudakz 5:ace99c9d0e4e 98
hudakz 5:ace99c9d0e4e 99 if [ "${FLASH}" == "-f" ]
hudakz 5:ace99c9d0e4e 100 then
hudakz 5:ace99c9d0e4e 101 case ${MCU} in
hudakz 5:ace99c9d0e4e 102 LPC1768)
hudakz 5:ace99c9d0e4e 103 MCU_CFG="pyOCD"
hudakz 5:ace99c9d0e4e 104 ;;
hudakz 5:ace99c9d0e4e 105 LPC1768DBG)
hudakz 5:ace99c9d0e4e 106 MCU_CFG="pyOCD"
hudakz 5:ace99c9d0e4e 107 ;;
hudakz 5:ace99c9d0e4e 108 BLUEPILL|MAPLE_MINI|NUCLEO_F103RB|STM32F103RC|STM32F103VE)
hudakz 5:ace99c9d0e4e 109 MCU_CFG="/usr/local/share/openocd/scripts/board/st_nucleo_f103rb.cfg"
hudakz 5:ace99c9d0e4e 110 ;;
hudakz 5:ace99c9d0e4e 111 NUCLEO_F446RE|STM32F407VE)
hudakz 5:ace99c9d0e4e 112 MCU_CFG="/usr/local/share/openocd/scripts/board/st_nucleo_f4.cfg"
hudakz 5:ace99c9d0e4e 113 ;;
hudakz 5:ace99c9d0e4e 114 NUCLEO_F767ZI)
hudakz 5:ace99c9d0e4e 115 MCU_CFG="/usr/local/share/openocd/scripts/board/stm32f7discovery.cfg"
hudakz 5:ace99c9d0e4e 116 ;;
hudakz 5:ace99c9d0e4e 117 *)
hudakz 5:ace99c9d0e4e 118 MCU_CFG="not_supported"
hudakz 5:ace99c9d0e4e 119 echo "No support to flash "${MCU}
hudakz 5:ace99c9d0e4e 120 ;;
hudakz 5:ace99c9d0e4e 121 esac
hudakz 5:ace99c9d0e4e 122 if [ "$MCU_CFG" != "not_supported" ]
hudakz 5:ace99c9d0e4e 123 then
hudakz 5:ace99c9d0e4e 124 echo "Flashing the "${MCU}" ..."
hudakz 5:ace99c9d0e4e 125 case ${MCU_CFG} in
hudakz 5:ace99c9d0e4e 126 pyOCD)
hudakz 5:ace99c9d0e4e 127 if [ "$PORT" == "/dev/ttyACM0" ]
hudakz 5:ace99c9d0e4e 128 then
hudakz 5:ace99c9d0e4e 129 ~/.local/bin/pyocd-flashtool -t lpc1768 ./BUILD/${MCU}/GCC_ARM-${PROF}/${PROJ_NAME}.bin
hudakz 5:ace99c9d0e4e 130 #~/.local/bin/pyocd-flashtool -t lpc1768 ./BUILD/${MCU}/GCC_ARM-${PROF}/${PROJ_NAME}.bin > /dev/null 2>&1
hudakz 5:ace99c9d0e4e 131 else
hudakz 5:ace99c9d0e4e 132 lpc21isp -bin ./BUILD/${MCU}/GCC_ARM-${PROF}/${PROJ_NAME}.bin ${PORT} 115200 96000
hudakz 5:ace99c9d0e4e 133 fi
hudakz 5:ace99c9d0e4e 134 ;;
hudakz 5:ace99c9d0e4e 135 *)
hudakz 5:ace99c9d0e4e 136 openocd -f ${MCU_CFG} -c """program ./BUILD/${MCU}/GCC_ARM-${PROF}/${PROJ_NAME}.elf verify reset exit"""
hudakz 5:ace99c9d0e4e 137 #openocd -f ${MCU_CFG} -c """program ./BUILD/${MCU}/GCC_ARM-${PROF}/${PROJ_NAME}.elf verify reset exit""" > /dev/null 2>&1
hudakz 5:ace99c9d0e4e 138 ;;
hudakz 5:ace99c9d0e4e 139 esac
hudakz 5:ace99c9d0e4e 140 echo "Done"
hudakz 5:ace99c9d0e4e 141 fi
hudakz 5:ace99c9d0e4e 142 fi