diff --git a/stm32CubeProg.sh b/stm32CubeProg.sh index e79ef71dd..ed5e00c03 100644 --- a/stm32CubeProg.sh +++ b/stm32CubeProg.sh @@ -1,5 +1,6 @@ #!/bin/sh - set -o nounset # Treat unset variables as an error +# set -o xtrace # Print command traces before executing command. STM32CP_CLI= ADDRESS=0x8000000 @@ -13,7 +14,7 @@ OPTS="" usage() { echo "############################################################" echo "##" - echo "## $(basename "$0") [OPTIONS]" + echo "## $(basename "$0") [OPTIONS]" echo "##" echo "## protocol:" echo "## 0: SWD" @@ -22,16 +23,15 @@ usage() { echo "## Note: prefix it by 1 to erase all sectors." echo "## Ex: 10 erase all sectors using SWD interface." echo "## file_path: file path name to be downloaded: (bin, hex)" + echo "## offset: offset to add to $ADDRESS" echo "## Options:" echo "## For SWD and DFU: no mandatory options" echo "## For Serial: " echo "## com_port: serial identifier (mandatory). Ex: /dev/ttyS0 or COM1" echo "##" echo "## Note: all trailing arguments will be passed to the $STM32CP_CLI" - echo "## They have to be valid commands for STM32 MCU" - echo "## Ex: -g: Run the code at the specified address" - echo "## -rst: Reset system" - echo "## -s: start automatically (optional)" + echo "## They have to be valid commands for STM32CubeProgrammer cli" + echo "## Ex: -rst: Reset system" echo "############################################################" exit "$1" } @@ -40,13 +40,13 @@ UNAME_OS="$(uname -s)" case "${UNAME_OS}" in Linux*) STM32CP_CLI=STM32_Programmer.sh - if ! command -v $STM32CP_CLI >/dev/null 2>&1; then + if ! command -v $STM32CP_CLI > /dev/null 2>&1; then export PATH="$HOME/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin":"$PATH" fi - if ! command -v $STM32CP_CLI >/dev/null 2>&1; then + if ! command -v $STM32CP_CLI > /dev/null 2>&1; then export PATH="/opt/stm32cubeprog/bin":"$PATH" fi - if ! command -v $STM32CP_CLI >/dev/null 2>&1; then + if ! command -v $STM32CP_CLI > /dev/null 2>&1; then echo "STM32CubeProgrammer not found ($STM32CP_CLI)." echo "Please install it or add '/bin' to your PATH environment:" echo "https://www.st.com/en/development-tools/stm32cubeprog.html" @@ -56,10 +56,10 @@ case "${UNAME_OS}" in ;; Darwin*) STM32CP_CLI=STM32_Programmer_CLI - if ! command -v $STM32CP_CLI >/dev/null 2>&1; then + if ! command -v $STM32CP_CLI > /dev/null 2>&1; then export PATH="/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/bin":"$PATH" fi - if ! command -v $STM32CP_CLI >/dev/null 2>&1; then + if ! command -v $STM32CP_CLI > /dev/null 2>&1; then echo "STM32CubeProgrammer not found ($STM32CP_CLI)." echo "Please install it or add '/bin' to your PATH environment:" echo "https://www.st.com/en/development-tools/stm32cubeprog.html" @@ -69,7 +69,7 @@ case "${UNAME_OS}" in ;; Windows*) STM32CP_CLI=STM32_Programmer_CLI.exe - if ! command -v $STM32CP_CLI >/dev/null 2>&1; then + if ! command -v $STM32CP_CLI > /dev/null 2>&1; then if [ -n "${PROGRAMFILES+x}" ]; then STM32CP86=${PROGRAMFILES}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin export PATH="${STM32CP86}":"$PATH" @@ -78,7 +78,7 @@ case "${UNAME_OS}" in STM32CP=${PROGRAMW6432}/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin export PATH="${STM32CP}":"$PATH" fi - if ! command -v $STM32CP_CLI >/dev/null 2>&1; then + if ! command -v $STM32CP_CLI > /dev/null 2>&1; then echo "STM32CubeProgrammer not found ($STM32CP_CLI)." echo "Please install it or add '\bin' to your PATH environment:" echo "https://www.st.com/en/development-tools/stm32cubeprog.html" @@ -92,7 +92,7 @@ case "${UNAME_OS}" in ;; esac -if [ $# -lt 2 ]; then +if [ $# -lt 3 ]; then echo "Not enough arguments!" usage 2 fi @@ -100,6 +100,9 @@ fi # Parse options PROTOCOL=$1 FILEPATH=$2 +OFFSET=$3 +ADDRESS=$(printf "0x%x" $((ADDRESS + OFFSET))) + # Protocol $1 # 1x: Erase all sectors if [ "$1" -ge 10 ]; then @@ -114,19 +117,19 @@ case $PROTOCOL in 0) PORT="SWD" MODE="mode=UR" - shift 2 + shift 3 ;; 1) - if [ $# -lt 3 ]; then + if [ $# -lt 4 ]; then usage 3 else - PORT=$3 - shift 3 + PORT=$4 + shift 4 fi ;; 2) PORT="USB1" - shift 2 + shift 3 ;; *) echo "Protocol unknown!" @@ -138,6 +141,6 @@ if [ $# -gt 0 ]; then OPTS="$*" fi -${STM32CP_CLI} -c port=${PORT} ${MODE} ${ERASE:+"-e all"} -q -d "${FILEPATH}" ${ADDRESS} "${OPTS}" +${STM32CP_CLI} -c port=${PORT} ${MODE} ${ERASE:+"-e all"} -q -d "${FILEPATH}" "${ADDRESS}" -s "${ADDRESS}" "${OPTS}" exit $? pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy