Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
mbed.bat@0:e5c84595673c, 2020-08-14 (annotated)
- 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?
User | Revision | Line number | New 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 |