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