1.. _flash-debug-host-tools: 2 3Flash & Debug Host Tools 4######################## 5 6This guide describes the software tools you can run on your host workstation to 7flash and debug Zephyr applications. 8 9Zephyr's west tool has built-in support for all of these in its ``flash``, 10``debug``, ``debugserver``, and ``attach`` commands, provided your board 11hardware supports them and your Zephyr board directory's :file:`board.cmake` 12file declares that support properly. See :ref:`west-build-flash-debug` for 13more information on these commands. 14 15.. _runner_blackmagicprobe: 16 17Black Magic Probe 18***************** 19 20Black Magic Probe (BMP) is an open-source debugging hardware incorporating GDB debug 21server functionality into the firmware. 22There is no need for a GDB server program, so there is no program equivalent 23to host-tool. 24 25For more details, including usage instructions and supported targets, 26see :ref:`black-magic-probe`. 27 28.. _atmel_sam_ba_bootloader: 29.. _runner_bossac: 30 31SAM Boot Assistant (SAM-BA) 32*************************** 33 34Atmel SAM Boot Assistant (Atmel SAM-BA) allows In-System Programming (ISP) 35from USB or UART host without any external programming interface. Zephyr 36allows users to develop and program boards with SAM-BA support using 37:ref:`west <west-flashing>`. Zephyr supports devices with/without ROM 38bootloader and both extensions from Arduino and Adafruit. Full support was 39introduced in Zephyr SDK 0.12.0. 40 41The typical command to flash the board is: 42 43.. code-block:: console 44 45 west flash [ -r bossac ] [ -p /dev/ttyX ] [ --erase ] 46 47.. note:: 48 49 By default, flashing with bossac will only erase the flash pages containing 50 the flashed application, leaving other pages untouched. Should you wish to 51 erase the entire flash of the target when flashing, pass the ``--erase`` 52 parameter when flashing. 53 54Flash configuration for devices: 55 56.. tabs:: 57 58 .. tab:: With ROM bootloader 59 60 These devices don't need any special configuration. After building your 61 application, just run ``west flash`` to flash the board. 62 63 .. tab:: Without ROM bootloader 64 65 For these devices, the user should: 66 67 1. Define flash partitions required to accommodate the bootloader and 68 application image; see :ref:`flash_map_api` for details. 69 2. Have board :file:`.defconfig` file with the 70 :kconfig:option:`CONFIG_USE_DT_CODE_PARTITION` Kconfig option set to ``y`` to 71 instruct the build system to use these partitions for code relocation. 72 This option can also be set in ``prj.conf`` or any other Kconfig fragment. 73 3. Build and flash the SAM-BA bootloader on the device. 74 75 .. tab:: With compatible SAM-BA bootloader 76 77 For these devices, the user should: 78 79 1. Define flash partitions required to accommodate the bootloader and 80 application image; see :ref:`flash_map_api` for details. 81 2. Have board :file:`.defconfig` file with the 82 :kconfig:option:`CONFIG_BOOTLOADER_BOSSA` Kconfig option set to ``y``. This will 83 automatically select the :kconfig:option:`CONFIG_USE_DT_CODE_PARTITION` Kconfig 84 option which instruct the build system to use these partitions for code 85 relocation. The board :file:`.defconfig` file should have 86 :kconfig:option:`CONFIG_BOOTLOADER_BOSSA_ARDUINO` , 87 :kconfig:option:`CONFIG_BOOTLOADER_BOSSA_ADAFRUIT_UF2` or the 88 :kconfig:option:`CONFIG_BOOTLOADER_BOSSA_LEGACY` Kconfig option set to ``y`` 89 to select the right compatible SAM-BA bootloader mode. 90 These options can also be set in ``prj.conf`` or any other Kconfig fragment. 91 3. Build and flash the SAM-BA bootloader on the device. 92 93.. note:: 94 95 The :kconfig:option:`CONFIG_BOOTLOADER_BOSSA_LEGACY` Kconfig option should be used 96 as last resource. Try configure first with Devices without ROM bootloader. 97 98 99Typical flash layout and configuration 100-------------------------------------- 101 102For bootloaders that reside on flash, the devicetree partition layout is 103mandatory. For devices that have a ROM bootloader, they are mandatory when 104the application uses a storage or other non-application partition. In this 105special case, the boot partition should be omitted and code_partition should 106start from offset 0. It is necessary to define the partitions with sizes that 107avoid overlaps, always. 108 109A typical flash layout for devices without a ROM bootloader is: 110 111.. code-block:: devicetree 112 113 / { 114 chosen { 115 zephyr,code-partition = &code_partition; 116 }; 117 }; 118 119 &flash0 { 120 partitions { 121 compatible = "fixed-partitions"; 122 #address-cells = <1>; 123 #size-cells = <1>; 124 125 boot_partition: partition@0 { 126 label = "sam-ba"; 127 reg = <0x00000000 0x2000>; 128 read-only; 129 }; 130 131 code_partition: partition@2000 { 132 label = "code"; 133 reg = <0x2000 0x3a000>; 134 read-only; 135 }; 136 137 /* 138 * The final 16 KiB is reserved for the application. 139 * Storage partition will be used by FCB/LittleFS/NVS 140 * if enabled. 141 */ 142 storage_partition: partition@3c000 { 143 label = "storage"; 144 reg = <0x0003c000 0x00004000>; 145 }; 146 }; 147 }; 148 149A typical flash layout for devices with a ROM bootloader and storage 150partition is: 151 152.. code-block:: devicetree 153 154 / { 155 chosen { 156 zephyr,code-partition = &code_partition; 157 }; 158 }; 159 160 &flash0 { 161 partitions { 162 compatible = "fixed-partitions"; 163 #address-cells = <1>; 164 #size-cells = <1>; 165 166 code_partition: partition@0 { 167 label = "code"; 168 reg = <0x0 0xF0000>; 169 read-only; 170 }; 171 172 /* 173 * The final 64 KiB is reserved for the application. 174 * Storage partition will be used by FCB/LittleFS/NVS 175 * if enabled. 176 */ 177 storage_partition: partition@F0000 { 178 label = "storage"; 179 reg = <0x000F0000 0x00100000>; 180 }; 181 }; 182 }; 183 184 185Enabling SAM-BA runner 186---------------------- 187 188In order to instruct Zephyr west tool to use the SAM-BA bootloader the 189:file:`board.cmake` file must have 190``include(${ZEPHYR_BASE}/boards/common/bossac.board.cmake)`` entry. Note that 191Zephyr tool accept more entries to define multiple runners. By default, the 192first one will be selected when using ``west flash`` command. The remaining 193options are available passing the runner option, for instance 194``west flash -r bossac``. 195 196 197More implementation details can be found in the :ref:`boards` documentation. 198As a quick reference, see these three board documentation pages: 199 200 - :zephyr:board:`sam4e_xpro` (ROM bootloader) 201 - :zephyr:board:`adafruit_feather_m0_basic_proto` (Adafruit UF2 bootloader) 202 - :zephyr:board:`arduino_nano_33_iot` (Arduino bootloader) 203 - :zephyr:board:`arduino_nano_33_ble` (Arduino legacy bootloader) 204 205Enabling BOSSAC on Windows Native [Experimental] 206------------------------------------------------ 207 208Zephyr SDK´s bossac is currently supported on Linux and macOS only. Windows support 209can be achieved by using the bossac version from `BOSSA official releases`_. 210After installing using default options, the :file:`bossac.exe` must be added to 211Windows PATH. A specific bossac executable can be used by passing the 212``--bossac`` option, as follows: 213 214.. code-block:: console 215 216 west flash -r bossac --bossac="C:\Program Files (x86)\BOSSA\bossac.exe" --bossac-port="COMx" 217 218.. note:: 219 220 WSL is not currently supported. 221 222 223.. _linkserver-debug-host-tools: 224.. _runner_linkserver: 225 226LinkServer Debug Host Tools 227**************************** 228 229Linkserver is a utility for launching and managing GDB servers for NXP debug probes, 230which also provides a command-line target flash programming capabilities. 231Linkserver can be used with the `NXP MCUXpresso for Visual Studio Code`_ implementation, 232with custom debug configurations based on GNU tools or as part of a headless solution 233for continuous integration and test. LinkServer can be used with MCU-Link, LPC-Link2, 234LPC11U35-based and OpenSDA based standalone or on-board debug probes from NXP. 235 236NXP recommends installing LinkServer by using NXP's `MCUXpresso Installer`_. 237This method will also install the tools supporting the debug probes below, 238including NXP's MCU-Link and LPCScrypt tools. 239 240LinkServer is compatible with the following debug probes: 241 242- :ref:`lpclink2-cmsis-onboard-debug-probe` 243- :ref:`mcu-link-cmsis-onboard-debug-probe` 244- :ref:`opensda-daplink-onboard-debug-probe` 245 246To use LinkServer with West commands, the install folder should be added to the 247:envvar:`PATH` :ref:`environment variable <env_vars>`. The default installation 248path to add is: 249 250.. tabs:: 251 252 .. group-tab:: Linux 253 254 .. code-block:: console 255 256 /usr/local/LinkServer 257 258 .. group-tab:: macOS 259 260 .. code-block:: console 261 262 /Applications/LinkServer_<version> 263 264 .. group-tab:: Windows 265 266 .. code-block:: console 267 268 c:\nxp\LinkServer_<version> 269 270Supported west commands: 271 2721. flash 273#. debug 274#. debugserver 275#. attach 276 277Notes: 278 279 2801. Probes can be listed with LinkServer: 281 282.. code-block:: console 283 284 LinkServer probes 285 2862. With multiple debug probes attached to the host, use the 287LinkServer west runner ``--probe`` option to pass the probe index. 288 289.. code-block:: console 290 291 west flash --runner=linkserver --probe=3 292 2933. Device-specific settings can be overridden with the west runner for LinkServer with 294 the option '--override'. May be used multiple times. The format is dictated 295 by LinkServer, e.g.: 296 297.. code-block:: console 298 299 west flash --runner=linkserver --override /device/memory/5/flash-driver=MIMXRT500_SFDP_MXIC_OSPI_S.cfx 300 3014. LinkServer does not install an implicit breakpoint at the reset handler. If 302 you would like to single step from the start of their application, you 303 will need to add a breakpoint at ``main`` or the reset handler manually. 304 305.. _jlink-debug-host-tools: 306.. _runner_jlink: 307 308J-Link Debug Host Tools 309*********************** 310 311Segger provides a suite of debug host tools for Linux, macOS, and Windows 312operating systems: 313 314- J-Link GDB Server: GDB remote debugging 315- J-Link Commander: Command-line control and flash programming 316- RTT Viewer: RTT terminal input and output 317- SystemView: Real-time event visualization and recording 318 319These debug host tools are compatible with the following debug probes: 320 321- :ref:`lpclink2-jlink-onboard-debug-probe` 322- :ref:`opensda-jlink-onboard-debug-probe` 323- :ref:`mcu-link-jlink-onboard-debug-probe` 324- :ref:`jlink-external-debug-probe` 325- :ref:`stlink-v21-onboard-debug-probe` 326 327Check if your SoC is listed in `J-Link Supported Devices`_. 328 329Download and install the `J-Link Software and Documentation Pack`_ to get the 330J-Link GDB Server and Commander, and to install the associated USB device 331drivers. RTT Viewer and SystemView can be downloaded separately, but are not 332required. 333 334Note that the J-Link GDB server does not yet support Zephyr RTOS-awareness. 335 336.. _openocd-debug-host-tools: 337.. _runner_openocd: 338 339OpenOCD Debug Host Tools 340************************ 341 342OpenOCD is a community open source project that provides GDB remote debugging 343and flash programming support for a wide range of SoCs. A fork that adds Zephyr 344RTOS-awareness is included in the Zephyr SDK; otherwise see `Getting OpenOCD`_ 345for options to download OpenOCD from official repositories. 346 347These debug host tools are compatible with the following debug probes: 348 349- :ref:`opensda-daplink-onboard-debug-probe` 350- :ref:`jlink-external-debug-probe` 351- :ref:`stlink-v21-onboard-debug-probe` 352 353Check if your SoC is listed in `OpenOCD Supported Devices`_. 354 355.. note:: On Linux, openocd is available though the `Zephyr SDK 356 <https://github.com/zephyrproject-rtos/sdk-ng/releases>`_. 357 Windows users should use the following steps to install 358 openocd: 359 360 - Download openocd for Windows from here: `OpenOCD Windows`_ 361 - Copy bin and share dirs to ``C:\Program Files\OpenOCD\`` 362 - Add ``C:\Program Files\OpenOCD\bin`` to 'PATH' environment variable 363 364.. _pyocd-debug-host-tools: 365.. _runner_pyocd: 366 367pyOCD Debug Host Tools 368********************** 369 370pyOCD is an open source project from Arm that provides GDB remote debugging and 371flash programming support for Arm Cortex-M SoCs. It is distributed on PyPi and 372installed when you complete the :ref:`gs_python_deps` step in the Getting 373Started Guide. pyOCD includes support for Zephyr RTOS-awareness. 374 375These debug host tools are compatible with the following debug probes: 376 377- :ref:`lpclink2-cmsis-onboard-debug-probe` 378- :ref:`mcu-link-cmsis-onboard-debug-probe` 379- :ref:`opensda-daplink-onboard-debug-probe` 380- :ref:`stlink-v21-onboard-debug-probe` 381 382Check if your SoC is listed in `pyOCD Supported Devices`_. 383 384.. _lauterbach-trace32-debug-host-tools: 385.. _runner_trace32: 386 387Lauterbach TRACE32 Debug Host Tools 388*********************************** 389 390`Lauterbach TRACE32`_ is a product line of microprocessor development tools, 391debuggers and real-time tracer with support for JTAG, SWD, NEXUS or ETM over 392multiple core architectures, including Arm Cortex-A/-R/-M, RISC-V, Xtensa, etc. 393Zephyr allows users to develop and program boards with Lauterbach TRACE32 394support using :ref:`west <west-flashing>`. 395 396The runner consists of a wrapper around TRACE32 software, and allows a Zephyr 397board to execute a custom start-up script (Practice Script) for the different 398commands supported, including the ability to pass extra arguments from CMake. 399Is up to the board using this runner to define the actions performed on each 400command. 401 402Install Lauterbach TRACE32 Software 403----------------------------------- 404 405Download Lauterbach TRACE32 software from the `Lauterbach TRACE32 download website`_ 406(registration required) and follow the installation steps described in 407`Lauterbach TRACE32 Installation Guide`_. 408 409Flashing and Debugging 410---------------------- 411 412Set the :ref:`environment variable <env_vars>` :envvar:`T32_DIR` to the TRACE32 413system directory. Then execute ``west flash`` or ``west debug`` commands to 414flash or debug the Zephyr application as detailed in :ref:`west-build-flash-debug`. 415The ``debug`` command launches TRACE32 GUI to allow debug the Zephyr 416application, while the ``flash`` command hides the GUI and perform all 417operations in the background. 418 419By default, the ``t32`` runner will launch TRACE32 using the default 420configuration file named ``config.t32`` located in the TRACE32 system 421directory. To use a different configuration file, supply the argument 422``--config CONFIG`` to the runner, for example: 423 424.. code-block:: console 425 426 west flash --config myconfig.t32 427 428For more options, run ``west flash --context -r t32`` to print the usage. 429 430Zephyr RTOS Awareness 431--------------------- 432 433To enable Zephyr RTOS awareness follow the steps described in 434`Lauterbach TRACE32 Zephyr OS Awareness Manual`_. 435 436.. _nxp-s32-debug-host-tools: 437.. _runner_nxp_s32dbg: 438 439NXP S32 Debug Probe Host Tools 440****************************** 441 442:ref:`nxp-s32-debug-probe` is designed to work in conjunction with 443`NXP S32 Design Studio for S32 Platform`_. 444 445Download (registration required) NXP S32 Design Studio for S32 Platform and 446follow the `S32 Design Studio for S32 Platform Installation User Guide`_ to get 447the necessary debug host tools and associated USB device drivers. 448 449Note that Zephyr RTOS-awareness support for the NXP S32 GDB server depends on 450the target device. Consult the product release notes for more information. 451 452Supported west commands: 453 4541. debug 455#. debugserver 456#. attach 457 458Basic usage 459----------- 460 461Before starting, add NXP S32 Design Studio installation directory to the system 462:ref:`PATH environment variable <env_vars>`. Alternatively, it can be passed to 463the runner on each invocation via ``--s32ds-path`` as shown below: 464 465.. tabs:: 466 467 .. group-tab:: Linux 468 469 .. code-block:: console 470 471 west debug --s32ds-path=/opt/NXP/S32DS.3.6 472 473 .. group-tab:: Windows 474 475 .. code-block:: console 476 477 west debug --s32ds-path=C:\NXP\S32DS.3.6 478 479If multiple S32 debug probes are connected to the host via USB, the runner will 480ask the user to select one via command line prompt before continuing. The 481connection string for the probe can be also specified when invoking the runner 482via ``--dev-id=<connection-string>``. Consult NXP S32 debug probe user manual 483for details on how to construct the connection string. For example, if using a 484probe with serial ID ``00:04:9f:00:ca:fe``: 485 486.. code-block:: console 487 488 west debug --dev-id='s32dbg:00:04:9f:00:ca:fe' 489 490It is possible to pass extra options to the debug host tools via ``--tool-opt``. 491When executing ``debug`` or ``attach`` commands, the tool options will be passed 492to the GDB client only. When executing ``debugserver``, the tool options will be 493passed to the GDB server. For example, to load a Zephyr application to SRAM and 494afterwards detach the debug session: 495 496.. code-block:: console 497 498 west debug --tool-opt='--batch' 499 500Requirements 501------------ 502 503- **S32 Design Studio version**: 3.6.0 or newer. 504- **S32DebugProbe OS (firmware)**: 1.1.0 or newer. 505 506S32 Debug Probe OS Upgrade Procedure 507------------------------------------ 508 509Refer to the “Reprogramming S32 Debug Probe Firmware Images” chapter 510in the `S32 Debug Probe User Guide`_ to upgrade the OS of the S32DebugProbe. 511 512.. _runner_probe_rs: 513 514probe-rs Debug Host Tools 515************************* 516 517probe-rs is an open-source embedded toolkit written in Rust. It provides 518out-of-the-box support for a variety of debug probes, including CMSIS-DAP, 519ST-Link, SEGGER J-Link, FTDI and built-in USB-JTAG interface on ESP32 devices. 520 521Check `probe-rs Installation`_ for more setup details. 522 523Check if your SoC is listed in `probe-rs Supported Devices`_. 524 525.. _runner_rfp: 526 527Renesas Flash Programmer (RFP) Host Tools 528***************************************** 529 530Renesas provides `Renesas Flash Programmer`_ as an official programming tool for Renesas boards 531using the Renesas standard boot firmware. It is available as a GUI and CLI. 532 533For boards configured with the ``rfp`` west runner, the RFP CLI can be easily used to flash Zephyr. 534 535Supported west commands: 536 5371. flash 538 539Once downloaded, if ``rfp-cli`` is not placed somewhere in your system PATH, you can pass the location 540to ``rfp-cli`` when flashing: 541 542.. code-block:: console 543 544 west flash --rfp-cli ~/Downloads/RFP_CLI_Linux_V31800_x64/linux-x64/rfp-cli 545 546.. _stm32cubeclt-host-tools: 547.. _runner_stlink_gdbserver: 548 549STM32CubeCLT Flash & Debug Host Tools 550************************************* 551 552STMicroelectronics provides `STM32CubeCLT`_ as an official all-in-one toolset compatible with 553Linux |reg|, macOS |reg| and Windows |reg|, allowing the use of STMicroelectronics proprietary 554tools within third-party development environments. 555 556It notably provides a GDB debugging server (the *ST-LINK GDB Server*) that can be used to debug 557applications on STM32 boards thanks to on-board or external ST-LINK debug probes. 558 559It is compatible with the following debug probes: 560 561- :ref:`stlink-v21-onboard-debug-probe` 562- Standalone `ST-LINK-V2`_, `ST-LINK-V3`_, and `STLINK-V3PWR`_ probes 563 564Install STM32CubeCLT 565-------------------- 566 567The easiest way to get the ST-LINK GDB Server is to install `STM32CubeCLT`_ from STMicroelectronics' website. 568A valid email address is needed to receive the downloading link. 569 570Basic usage 571----------- 572 573The ST-Link GDB Server can be used through the ``west attach``, ``west debug`` or ``west debugserver`` commands 574to debug Zephyr applications. 575 576.. code-block:: console 577 578 west debug --runner stlink_gdbserver 579 580.. note:: 581 582 The `STM32CubeProgrammer`_ version contained in the `STM32CubeCLT`_ installation can also be used to flash 583 applications. To do so, the dedicated :ref:`STM32CubeProgrammer runner <runner_stm32cubeprogrammer>` should 584 be used instead of ``stlink_gdbserver``, as done in the following example: 585 586 .. code-block:: console 587 588 west flash --runner stm32cubeprogrammer 589 590.. _stm32cubeprog-flash-host-tools: 591.. _runner_stm32cubeprogrammer: 592 593STM32CubeProgrammer Flash Host Tools 594************************************ 595 596STMicroelectronics provides `STM32CubeProgrammer`_ (STM32CubeProg) as an official programming tool 597for STM32 boards on Linux |reg|, macOS |reg|, and Windows |reg| operating systems. 598 599It provides an easy-to-use and efficient environment for reading, writing, and verifying device memory 600through both the debug interface (JTAG and SWD) and the bootloader interface (UART and USB DFU, I2C, SPI, and CAN). 601 602It offers a wide range of features to program STM32 internal memories (such as flash, RAM, and OTP) 603as well as external memories. 604 605It also allows option programming and upload, programming content verification, and programming automation 606through scripting. 607 608It is delivered in GUI (graphical user interface) and CLI (command-line interface) versions. 609 610It is compatible with the following debug probes: 611 612- :ref:`stlink-v21-onboard-debug-probe` 613- :ref:`jlink-external-debug-probe` 614- Standalone `ST-LINK-V2`_, `ST-LINK-V3`_, and `STLINK-V3PWR`_ probes 615 616Install STM32CubeProgrammer 617--------------------------- 618 619The easiest way to get `STM32CubeProgrammer`_ is to download it from STMicroelectronics website. 620A valid email address is needed to receive the downloading link. 621 622Alternatively, it can be installed as part of `STM32CubeCLT`_ all-in-one multi-OS command-line toolset 623which also includes GDB debugger client and server. 624 625If you have STM32CubeIDE installed on your system, then STM32CubeProg is already present. 626 627Basic usage 628----------- 629 630`STM32CubeProgrammer`_ is setup as the default west runner for all active STM32 boards supported by Zephyr. 631It can be used through the ``west flash`` command to flash Zephyr applications. 632 633.. code-block:: console 634 635 west flash --runner stm32cubeprogrammer 636 637For advanced usage via the GUI or CLI, check out the `STM32CubeProgrammer User Manual`_. 638 639.. _runner_uf2: 640 641UF2 Uploader 642************ 643 644The uf2 runner supports flashing some boards using the UF2 (USB Flashing Format). 645UF2 is a user-friendly file format designed for drag-and-drop programming via a USB mass storage device. 646 647It relies on the target device entering a special bootloader mode where it appears to the host 648as a USB mass storage device. 649Once in this mode, the application image can be uploaded by copying a ``.uf2`` file to the 650mounted volume. 651 652.. code-block:: console 653 654 west flash --runner uf2 655 656If the UF2 volume is not automatically detected, you may need to manually specify the mount point 657using the ``--device`` option: 658 659For more about the UF2 format and its tooling, see `USB Flashing Format (UF2)`_. 660 661.. _J-Link Software and Documentation Pack: 662 https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack 663 664.. _J-Link Supported Devices: 665 https://www.segger.com/downloads/supported-devices.php 666 667.. _Getting OpenOCD: 668 https://openocd.org/pages/getting-openocd.html 669 670.. _OpenOCD Supported Devices: 671 https://github.com/zephyrproject-rtos/openocd/tree/latest/tcl/target 672 673.. _pyOCD Supported Devices: 674 https://github.com/pyocd/pyOCD/tree/main/pyocd/target/builtin 675 676.. _OpenOCD Windows: 677 https://gnutoolchains.com/arm-eabi/openocd/ 678 679.. _Lauterbach TRACE32: 680 https://www.lauterbach.com/ 681 682.. _Lauterbach TRACE32 download website: 683 https://www.lauterbach.com/download_trace32.html 684 685.. _Lauterbach TRACE32 Installation Guide: 686 https://www2.lauterbach.com/pdf/installation.pdf 687 688.. _Lauterbach TRACE32 Zephyr OS Awareness Manual: 689 https://www2.lauterbach.com/pdf/rtos_zephyr.pdf 690 691.. _BOSSA official releases: 692 https://github.com/shumatech/BOSSA/releases 693 694.. _NXP MCUXpresso for Visual Studio Code: 695 https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-for-visual-studio-code:MCUXPRESSO-VSC 696 697.. _MCUXpresso Installer: 698 https://github.com/nxp-mcuxpresso/vscode-for-mcux/wiki/Dependency-Installation 699 700.. _NXP S32 Design Studio for S32 Platform: 701 https://www.nxp.com/design/software/development-software/s32-design-studio-ide/s32-design-studio-for-s32-platform:S32DS-S32PLATFORM 702 703.. _Renesas Flash Programmer: 704 https://www.renesas.com/en/software-tool/renesas-flash-programmer-programming-gui 705 706.. _S32 Design Studio for S32 Platform Installation User Guide: 707 https://www.nxp.com/webapp/Download?colCode=S32DSIG 708 709.. _S32 Debug Probe User Guide: 710 https://www.nxp.com/docs/en/user-guide/S32DBGUG.pdf 711 712.. _probe-rs Installation: 713 https://probe.rs/docs/getting-started/installation/ 714 715.. _probe-rs Supported Devices: 716 https://probe.rs/targets/ 717 718.. _STM32CubeCLT: 719 https://www.st.com/en/development-tools/stm32cubeclt.html 720 721.. _STM32CubeProgrammer: 722 https://www.st.com/en/development-tools/stm32cubeprog.html 723 724.. _STM32CubeProgrammer User Manual: 725 https://www.st.com/resource/en/user_manual/um2237-stm32cubeprogrammer-software-description-stmicroelectronics.pdf 726 727.. _ST-LINK-V2: 728 https://www.st.com/en/development-tools/st-link-v2.html 729 730.. _ST-LINK-V3: 731 https://www.st.com/en/development-tools/stlink-v3set.html 732 733.. _STLINK-V3PWR: 734 https://www.st.com/en/development-tools/stlink-v3pwr.html 735 736.. _USB Flashing Format (UF2): 737 https://github.com/microsoft/uf2 738