This is an automated email from the ASF dual-hosted git repository.

janc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git


The following commit(s) were added to refs/heads/master by this push:
     new 5cb8cb613 hw/scripts: Verify if programmer tool exist before flashing
5cb8cb613 is described below

commit 5cb8cb613b96bcd1a87c92961372a3c8ef8ae78a
Author: Szymon Janc <[email protected]>
AuthorDate: Thu Mar 7 09:40:36 2024 +0100

    hw/scripts: Verify if programmer tool exist before flashing
    
    This improves user experience when seting up project.
---
 hw/scripts/download.sh | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/hw/scripts/download.sh b/hw/scripts/download.sh
index fc347bd14..6b27c6fe1 100644
--- a/hw/scripts/download.sh
+++ b/hw/scripts/download.sh
@@ -29,6 +29,13 @@
 #  - FLASH_OFFSET contains the flash offset to download to
 #  - BOOT_LOADER is set if downloading a bootloader
 
+check_downloader() {
+  if ! command -v $1 &> /dev/null; then
+    >&2 echo "$1 not found."
+    exit 1
+  fi
+}
+
 if [ "$MFG_IMAGE" ]; then
   if [ -z "$MYNEWT_VAL_MYNEWT_DOWNLOADER_MFG_IMAGE_FLASH_OFFSET" ] ; then
     >&2 echo "Syscfg value MYNEWT_DOWNLOADER_MFG_IMAGE_FLASH_OFFSET not set"
@@ -39,11 +46,13 @@ fi
 
 case "${MYNEWT_VAL_MYNEWT_DOWNLOADER}" in
   "ezflashcli")
+    check_downloader ezFlashCLI
     . $CORE_PATH/hw/scripts/ezflashcli.sh
     common_file_to_load
     ezflashcli_load
     ;;
   "jlink")
+    check_downloader JLinkExe
     . $CORE_PATH/hw/scripts/jlink.sh
     if [ -z "${MYNEWT_VAL_JLINK_TARGET}" ] ; then
       >&2 echo -e "\n\nSyscfg value MYNEWT_DOWNLOADER set to 'jlink' but 
JLINK_TARGET not set in syscfg."
@@ -54,11 +63,13 @@ case "${MYNEWT_VAL_MYNEWT_DOWNLOADER}" in
     jlink_load
     ;;
   "nrfjprog")
+    check_downloader nrfjprog
     . $CORE_PATH/hw/scripts/nrfjprog.sh
     common_file_to_load
     nrfjprog_load
     ;;
   "openocd")
+    check_downloader openocd
     . $CORE_PATH/hw/scripts/openocd.sh
     if [ -n "${MYNEWT_VAL_MYNEWT_DOWNLOADER_OPENOCD_INTERFACE}" ] ; then
       CFG="-f ${MYNEWT_VAL_MYNEWT_DOWNLOADER_OPENOCD_INTERFACE}"
@@ -79,6 +90,7 @@ case "${MYNEWT_VAL_MYNEWT_DOWNLOADER}" in
     openocd_reset_run
     ;;
   "pyocd")
+    check_downloader pyocd
     . $CORE_PATH/hw/scripts/pyocd.sh
     if [ -z "${MYNEWT_VAL_PYOCD_TARGET}" ] ; then
       >&2 echo -e "\n\nSyscfg value MYNEWT_DOWNLOADER set to 'pyocd' but 
PYOCD_TARGET not set in syscfg."
@@ -90,11 +102,13 @@ case "${MYNEWT_VAL_MYNEWT_DOWNLOADER}" in
     pyocd_load
     ;;
   "stflash")
+    check_downloader st-flash
     . $CORE_PATH/hw/scripts/stlink.sh
     common_file_to_load
     stlink_load
     ;;
   "stm32_programmer_cli")
+    check_downloader STM32_Programmer_CLI
     . $CORE_PATH/hw/scripts/stm32_programmer.sh
     common_file_to_load
     stlink_load

Reply via email to