Skip to main content

StLink

MultiProg works with StLink as an SWD interface for ARM/RISC-V programming.

Starting with MultiProg 2.3.3, ST-Link drivers and the firmware updater ship in the bundle — you no longer need to download them from the vendor site.

On first launch MultiProg unpacks the archives into the user profile:

%USERPROFILE%\KuragaTech\MultiProg\programmer_utils\stlink\
├── en.stsw-link009.zip ← USB drivers (~5.3 MB)
└── en.stsw-link007-v3-14-5.zip ← Firmware Updater v3.14.5 (~2.1 MB; also supports non-original ST-Link)

The folder lives under %USERPROFILE% (C:\Users\<your_user>), so administrator rights are not required to run the utilities.

Quick access from MultiProg

On typical ST-Link errors ("firmware too old", "Programmer not found", "libusb error", "usb communication") the error dialog shows an "Open ST-Link Utilities" button — it opens the folder in Explorer with a single click.

Before first use of ST-Link — two steps:

Step 1. Install the USB drivers

  1. Unzip en.stsw-link009.zip into any convenient folder.
  2. Run stlink_winusb_install.bat — drivers will be installed for the ST-Link debug / ST-Link bridge / ST-Link VCP USB classes.
  3. Plug ST-Link into the computer and make sure it appears in Device Manager without any "yellow triangles".

As of today, the latest tested ST-Link firmware version is v3.14.5.

Reflash anyway

Even if ST-Link reports the firmware as up-to-date — reflash it. Some suppliers (especially of Chinese clones) replace the firmware version number without updating the actual contents.

  1. Unzip en.stsw-link007-v3-14-5.zip into any convenient folder.
  2. Plug ST-Link into USB.
  3. Run stsw-link007/Windows/ST-LinkUpgrade.exe.
  4. In the utility window click Open in update modeUpgrade.
  5. Wait for completion — the utility will display the new firmware version.

After this, ST-Link is ready to work with MultiProg.

Pinout

In the original version of StLink, there is an output with controlled VDD and an output with unmanaged, constant power. To work with StLink, you need to use the pin with constant power.

Reset

Make sure to check the reset functionality; it is required on many controllers for proper erasing/writing. You can select any controller in StLink and press connect; there should be a short pulse on the reset.

Serial Wire Debug (SWD)

A very common interface, originally an alternative to JTAG, operating over 2 pins (SWDIO/SWCLK). For ARM, this is the primary interface for programming and debugging.

Programming

Starting with MultiProg 2.3.0, ST-Link is driven by our in-house SWD backend KT SWD — a library written from scratch at Kuraga Tech that replaces the previous third-party stack. On top of it we ship our own flash routines for every supported family.

Included families:

  • STM32 — F0, F1, F2, F3, F4, F7, G0, G4, H7 (9 families)
  • Infineon FM3 / FM4 — 2 families
  • NXP MKE — MKE02Z, MKE04Z, MKE14Z, MKE15Z (4 families)

Fast write via SRAM routines — for STM32 F0/F1/F2/F3/F4/F7/G0/G4/H7, NXP MKE02/04/06 and Infineon FM4 MB9B560 writes are executed by a small microprogram uploaded into the target's SRAM (previously — byte-by-byte through DAP). Speed is on par with J-Flash / J-Link.

Owning the full stack means we improve and extend it without waiting on third-party libraries — including Option Bytes, EEPROM, FlexNVM and per-family quirks.