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