Zoltan Hudak / QtCreator_Support
Committer:
hudakz
Date:
Fri Aug 14 06:02:57 2020 +0000
Revision:
0:e5c84595673c
Child:
5:ace99c9d0e4e
Mbed support for QtCreator IDE.

Who changed what in which revision?

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