Skip to content

Commit 0e0ac68

Browse files
committed
Add STM32CubeProgrammer support
Signed-off-by: Frederic.Pillon <frederic.pillon@st.com>
1 parent be6cae0 commit 0e0ac68

File tree

3 files changed

+266
-0
lines changed

3 files changed

+266
-0
lines changed

linux/stm32CubeProg.sh

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
#!/bin/bash
2+
set -o nounset # Treat unset variables as an error
3+
#set -x
4+
STM32CP_CLI=STM32_Programmer.sh
5+
ADDRESS=0x8000000
6+
FILEPATH=
7+
MODE=
8+
PORT=
9+
OPTS=
10+
11+
###############################################################################
12+
## Help function
13+
usage()
14+
{
15+
echo "############################################################"
16+
echo "##"
17+
echo "## `basename $0` <protocol> <file_path> [OPTIONS]"
18+
echo "##"
19+
echo "## protocol: "
20+
echo "## 0: SWD"
21+
echo "## 1: Serial "
22+
echo "## 2: DFU"
23+
echo "## file_path: file path name to be downloaded: (bin, hex)"
24+
echo "## Options:"
25+
echo "## For SWD: -rst"
26+
echo "## -rst: Reset system (default)"
27+
echo "## For Serial: <com_port> -s"
28+
echo "## com_port: serial identifier. Ex: /dev/ttyS0"
29+
echo "## -s: start automatically"
30+
echo "## For DFU: none"
31+
echo "############################################################"
32+
exit $1
33+
}
34+
35+
36+
check_tool() {
37+
command -v $STM32CP_CLI >/dev/null 2>&1
38+
if [ $? != 0 ]; then
39+
export PATH="$HOME/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin":$PATH
40+
fi
41+
command -v $STM32CP_CLI >/dev/null 2>&1
42+
if [ $? != 0 ]; then
43+
echo "$STM32CP_CLI not found."
44+
echo "Please install it or add '<STM32CubeProgrammer path>/bin' to your PATH environment:"
45+
echo "https://www.st.com/en/development-tools/stm32cubeprog.html"
46+
echo "Aborting!"
47+
exit 1
48+
fi
49+
}
50+
51+
check_tool
52+
53+
if [ $# -lt 2 ]; then
54+
echo "Not enough arguments!"
55+
usage 2
56+
fi
57+
58+
FILEPATH=$2
59+
60+
# Parse options
61+
# Protocol $1
62+
# 0: SWD
63+
# 1: Serial
64+
# 2: DFU
65+
case $1 in
66+
0)
67+
PORT='SWD'
68+
MODE='mode=UR'
69+
if [ $# -lt 3 ]; then
70+
OPTS=-rst
71+
else
72+
OPTS=$3
73+
fi;;
74+
1)
75+
if [ $# -lt 3 ]; then
76+
usage 3
77+
else
78+
PORT=$3
79+
if [ $# -gt 3 ]; then
80+
shift 3
81+
OPTS="$@"
82+
fi
83+
fi;;
84+
2)
85+
PORT='USB1';;
86+
*)
87+
echo "Protocol unknown!"
88+
usage 4;;
89+
esac
90+
91+
${STM32CP_CLI} -c port=${PORT} ${MODE} -q -d ${FILEPATH} ${ADDRESS} ${OPTS}
92+
93+
exit 0
94+

macosx/stm32CubeProg

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
#!/bin/bash
2+
set -o nounset # Treat unset variables as an error
3+
STM32CP_CLI=STM32_Programmer_CLI
4+
ADDRESS=0x8000000
5+
FILEPATH=
6+
MODE=
7+
PORT=
8+
OPTS=
9+
10+
###############################################################################
11+
## Help function
12+
usage()
13+
{
14+
echo "############################################################"
15+
echo "##"
16+
echo "## `basename $0` <protocol> <file_path> [OPTIONS]"
17+
echo "##"
18+
echo "## protocol: "
19+
echo "## 0: SWD"
20+
echo "## 1: Serial "
21+
echo "## 2: DFU"
22+
echo "## file_path: file path name to be downloaded: (bin, hex)"
23+
echo "## Options:"
24+
echo "## For SWD: -rst"
25+
echo "## -rst: Reset system (default)"
26+
echo "## For Serial: <com_port> -s"
27+
echo "## com_port: serial identifier. Ex: /dev/ttyS0"
28+
echo "## -s: start automatically"
29+
echo "## For DFU: none"
30+
echo "############################################################"
31+
exit $1
32+
}
33+
34+
35+
check_tool() {
36+
command -v $STM32CP_CLI >/dev/null 2>&1
37+
if [ $? != 0 ]; then
38+
export PATH="/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/bin":$PATH
39+
fi
40+
command -v $STM32CP_CLI >/dev/null 2>&1
41+
if [ $? != 0 ]; then
42+
echo "$STM32CP_CLI not found."
43+
echo "Please install it or add '<STM32CubeProgrammer path>/bin' to your PATH environment:"
44+
echo "https://www.st.com/en/development-tools/stm32cubeprog.html"
45+
echo "Aborting!"
46+
exit 1
47+
fi
48+
}
49+
50+
check_tool
51+
52+
if [ $# -lt 2 ]; then
53+
echo "Not enough arguments!"
54+
usage 2
55+
fi
56+
57+
FILEPATH=$2
58+
59+
# Parse options
60+
# Protocol $1
61+
# 0: SWD
62+
# 1: Serial
63+
# 2: DFU
64+
case $1 in
65+
0)
66+
PORT='SWD'
67+
MODE='mode=UR'
68+
if [ $# -lt 3 ]; then
69+
OPTS=-rst
70+
else
71+
OPTS=$3
72+
fi;;
73+
1)
74+
if [ $# -lt 3 ]; then
75+
usage 3
76+
else
77+
PORT=$3
78+
if [ $# -gt 3 ]; then
79+
shift 3
80+
OPTS="$@"
81+
fi
82+
fi;;
83+
2)
84+
PORT='USB1';;
85+
*)
86+
echo "Protocol unknown!"
87+
usage 4;;
88+
esac
89+
90+
${STM32CP_CLI} -c port=${PORT} ${MODE} -q -d ${FILEPATH} ${ADDRESS} ${OPTS}
91+
92+
exit 0
93+

win/stm32CubeProg.bat

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
@echo off
2+
3+
set ERROR=0
4+
set STM32CP_CLI=STM32_Programmer_CLI.exe
5+
set ADDRESS=0x8000000
6+
7+
:: Check tool
8+
where /Q %STM32CP_CLI%
9+
if %errorlevel%==0 goto :param
10+
::Check with default path
11+
set STM32CP=%ProgramW6432%\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin
12+
set STM32CP86=%ProgramFiles(X86)%\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin
13+
set PATH=%PATH%;%STM32CP%;%STM32CP86%
14+
where /Q %STM32CP_CLI%
15+
if %errorlevel%==0 goto :param
16+
echo %STM32CP_CLI% not found.
17+
echo Please install it or add ^<STM32CubeProgrammer path^>\bin' to your PATH environment:
18+
echo https://www.st.com/en/development-tools/stm32cubeprog.html
19+
echo Aborting!
20+
exit 1
21+
22+
:param
23+
:: Parse options
24+
if "%~1"=="" echo Not enough arguments! & set ERROR=2 & goto :usage
25+
if "%~2"=="" echo Not enough arguments! & set ERROR=2 & goto :usage
26+
set FILEPATH=%~2
27+
28+
:: Protocol
29+
:: 0: SWD
30+
:: 1: Serial
31+
:: 2: DFU
32+
if %~1==0 goto :SWD
33+
if %~1==1 goto :SERIAL
34+
if %~1==2 goto :DFU
35+
echo Protocol unknown!
36+
set ERROR=4
37+
goto :usage
38+
39+
:SWD
40+
set PORT=SWD
41+
set MODE=mode=UR
42+
if "%~3"=="" (set OPTS=-rst) else (set OPTS=%3)
43+
goto :prog
44+
45+
:SERIAL
46+
if "%~3"=="" set ERROR=3 & goto :usage
47+
set PORT=%~3
48+
49+
if "%~4"=="" goto :prog
50+
shift
51+
shift
52+
shift
53+
set OPTS=%*
54+
goto :prog
55+
56+
:DFU
57+
set PORT=USB1
58+
goto :prog
59+
60+
:prog
61+
%STM32CP_CLI% -c port=%PORT% %MODE% -q -d %FILEPATH% %ADDRESS% %OPTS%
62+
exit 0
63+
64+
:usage
65+
echo %0 ^<protocol^> ^<file_path^> [OPTIONS]
66+
echo.
67+
echo protocol:
68+
echo 0: SWD
69+
echo 1: Serial
70+
echo 2: DFU
71+
echo file_path: file path name to be downloaded: (bin, hex)
72+
echo Options:
73+
echo For SWD: -rst
74+
echo -rst: Reset system (default)
75+
echo For Serial: ^<com_port^> -s
76+
echo com_port: serial identifier. Ex: /dev/ttyS0
77+
echo -s: start automatically
78+
echo For DFU: none
79+
exit %ERROR%

0 commit comments

Comments
 (0)