diff --git a/linux/stm32CubeProg.sh b/linux/stm32CubeProg.sh new file mode 100755 index 00000000..ff9a7b80 --- /dev/null +++ b/linux/stm32CubeProg.sh @@ -0,0 +1,94 @@ +#!/bin/bash +set -o nounset # Treat unset variables as an error +#set -x +STM32CP_CLI=STM32_Programmer.sh +ADDRESS=0x8000000 +FILEPATH= +MODE= +PORT= +OPTS= + +############################################################################### +## Help function +usage() +{ + echo "############################################################" + echo "##" + echo "## `basename $0` [OPTIONS]" + echo "##" + echo "## protocol: " + echo "## 0: SWD" + echo "## 1: Serial " + echo "## 2: DFU" + echo "## file_path: file path name to be downloaded: (bin, hex)" + echo "## Options:" + echo "## For SWD: -rst" + echo "## -rst: Reset system (default)" + echo "## For Serial: -s" + echo "## com_port: serial identifier. Ex: /dev/ttyS0" + echo "## -s: start automatically" + echo "## For DFU: none" + echo "############################################################" + exit $1 +} + + +check_tool() { + command -v $STM32CP_CLI >/dev/null 2>&1 + if [ $? != 0 ]; then + export PATH="$HOME/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin":$PATH + fi + command -v $STM32CP_CLI >/dev/null 2>&1 + if [ $? != 0 ]; then + echo "$STM32CP_CLI not found." + echo "Please install it or add '/bin' to your PATH environment:" + echo "https://www.st.com/en/development-tools/stm32cubeprog.html" + echo "Aborting!" + exit 1 + fi +} + +check_tool + +if [ $# -lt 2 ]; then + echo "Not enough arguments!" + usage 2 +fi + +FILEPATH=$2 + +# Parse options +# Protocol $1 +# 0: SWD +# 1: Serial +# 2: DFU +case $1 in + 0) + PORT='SWD' + MODE='mode=UR' + if [ $# -lt 3 ]; then + OPTS=-rst + else + OPTS=$3 + fi;; + 1) + if [ $# -lt 3 ]; then + usage 3 + else + PORT=$3 + if [ $# -gt 3 ]; then + shift 3 + OPTS="$@" + fi + fi;; + 2) + PORT='USB1';; + *) + echo "Protocol unknown!" + usage 4;; +esac + +${STM32CP_CLI} -c port=${PORT} ${MODE} -q -d ${FILEPATH} ${ADDRESS} ${OPTS} + +exit 0 + diff --git a/macosx/stm32CubeProg b/macosx/stm32CubeProg new file mode 100755 index 00000000..cfa71bf6 --- /dev/null +++ b/macosx/stm32CubeProg @@ -0,0 +1,93 @@ +#!/bin/bash +set -o nounset # Treat unset variables as an error +STM32CP_CLI=STM32_Programmer_CLI +ADDRESS=0x8000000 +FILEPATH= +MODE= +PORT= +OPTS= + +############################################################################### +## Help function +usage() +{ + echo "############################################################" + echo "##" + echo "## `basename $0` [OPTIONS]" + echo "##" + echo "## protocol: " + echo "## 0: SWD" + echo "## 1: Serial " + echo "## 2: DFU" + echo "## file_path: file path name to be downloaded: (bin, hex)" + echo "## Options:" + echo "## For SWD: -rst" + echo "## -rst: Reset system (default)" + echo "## For Serial: -s" + echo "## com_port: serial identifier. Ex: /dev/ttyS0" + echo "## -s: start automatically" + echo "## For DFU: none" + echo "############################################################" + exit $1 +} + + +check_tool() { + command -v $STM32CP_CLI >/dev/null 2>&1 + if [ $? != 0 ]; then + export PATH="/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/bin":$PATH + fi + command -v $STM32CP_CLI >/dev/null 2>&1 + if [ $? != 0 ]; then + echo "$STM32CP_CLI not found." + echo "Please install it or add '/bin' to your PATH environment:" + echo "https://www.st.com/en/development-tools/stm32cubeprog.html" + echo "Aborting!" + exit 1 + fi +} + +check_tool + +if [ $# -lt 2 ]; then + echo "Not enough arguments!" + usage 2 +fi + +FILEPATH=$2 + +# Parse options +# Protocol $1 +# 0: SWD +# 1: Serial +# 2: DFU +case $1 in + 0) + PORT='SWD' + MODE='mode=UR' + if [ $# -lt 3 ]; then + OPTS=-rst + else + OPTS=$3 + fi;; + 1) + if [ $# -lt 3 ]; then + usage 3 + else + PORT=$3 + if [ $# -gt 3 ]; then + shift 3 + OPTS="$@" + fi + fi;; + 2) + PORT='USB1';; + *) + echo "Protocol unknown!" + usage 4;; +esac + +${STM32CP_CLI} -c port=${PORT} ${MODE} -q -d ${FILEPATH} ${ADDRESS} ${OPTS} + +exit 0 + diff --git a/win/stm32CubeProg.bat b/win/stm32CubeProg.bat new file mode 100644 index 00000000..f1d259b1 --- /dev/null +++ b/win/stm32CubeProg.bat @@ -0,0 +1,79 @@ +@echo off + +set ERROR=0 +set STM32CP_CLI=STM32_Programmer_CLI.exe +set ADDRESS=0x8000000 + +:: Check tool +where /Q %STM32CP_CLI% +if %errorlevel%==0 goto :param +::Check with default path +set STM32CP=%ProgramW6432%\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin +set STM32CP86=%ProgramFiles(X86)%\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin +set PATH=%PATH%;%STM32CP%;%STM32CP86% +where /Q %STM32CP_CLI% +if %errorlevel%==0 goto :param +echo %STM32CP_CLI% not found. +echo Please install it or add ^\bin' to your PATH environment: +echo https://www.st.com/en/development-tools/stm32cubeprog.html +echo Aborting! +exit 1 + +:param +:: Parse options +if "%~1"=="" echo Not enough arguments! & set ERROR=2 & goto :usage +if "%~2"=="" echo Not enough arguments! & set ERROR=2 & goto :usage +set FILEPATH=%~2 + +:: Protocol +:: 0: SWD +:: 1: Serial +:: 2: DFU +if %~1==0 goto :SWD +if %~1==1 goto :SERIAL +if %~1==2 goto :DFU +echo Protocol unknown! +set ERROR=4 +goto :usage + +:SWD +set PORT=SWD +set MODE=mode=UR +if "%~3"=="" (set OPTS=-rst) else (set OPTS=%3) +goto :prog + +:SERIAL +if "%~3"=="" set ERROR=3 & goto :usage +set PORT=%~3 + +if "%~4"=="" goto :prog +shift +shift +shift +set OPTS=%* +goto :prog + +:DFU +set PORT=USB1 +goto :prog + +:prog +%STM32CP_CLI% -c port=%PORT% %MODE% -q -d %FILEPATH% %ADDRESS% %OPTS% +exit 0 + +:usage + echo %0 ^ ^ [OPTIONS] + echo. + echo protocol: + echo 0: SWD + echo 1: Serial + echo 2: DFU + echo file_path: file path name to be downloaded: (bin, hex) + echo Options: + echo For SWD: -rst + echo -rst: Reset system (default) + echo For Serial: ^ -s + echo com_port: serial identifier. Ex: /dev/ttyS0 + echo -s: start automatically + echo For DFU: none + exit %ERROR%