From c2b8d22eb56edf6ac1cad6aaa09a2c2d64befd1e Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Mon, 20 Mar 2023 11:51:06 +0100 Subject: [PATCH 1/3] feat(stm32CubeProg): add offset option Fixes #57 Signed-off-by: Frederic Pillon --- stm32CubeProg.sh | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/stm32CubeProg.sh b/stm32CubeProg.sh index e79ef71dd..65aef7b07 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,6 +23,7 @@ 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: " @@ -92,7 +94,7 @@ case "${UNAME_OS}" in ;; esac -if [ $# -lt 2 ]; then +if [ $# -lt 3 ]; then echo "Not enough arguments!" usage 2 fi @@ -100,6 +102,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 +119,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!" From 4f388d2aef59deb34504abf3e51e6e5b37e3b71e Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Mon, 20 Mar 2023 14:27:25 +0100 Subject: [PATCH 2/3] chore(stm32CubeProg): appply shell check and format Signed-off-by: Frederic Pillon --- stm32CubeProg.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/stm32CubeProg.sh b/stm32CubeProg.sh index 65aef7b07..f19dc5bbd 100644 --- a/stm32CubeProg.sh +++ b/stm32CubeProg.sh @@ -42,13 +42,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" @@ -58,10 +58,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" @@ -71,7 +71,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" @@ -80,7 +80,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" @@ -143,6 +143,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}" "${OPTS}" exit $? From c9b534370b460fd65c1369e693499b9ea450b2f2 Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Tue, 4 Apr 2023 16:16:08 +0200 Subject: [PATCH 3/3] feat(stm32CubeProg): add start at specified address Signed-off-by: Frederic Pillon --- stm32CubeProg.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/stm32CubeProg.sh b/stm32CubeProg.sh index f19dc5bbd..ed5e00c03 100644 --- a/stm32CubeProg.sh +++ b/stm32CubeProg.sh @@ -30,10 +30,8 @@ usage() { 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" } @@ -143,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