J-Link STM32 Utility

From SEGGER Knowledge Base
(Redirected from STM32 Utility)
Jump to navigation Jump to search
J-Link STM32 Unlock
Warning:
The STM32 Utility will be discontinued as of 01.01.2026. After this date, it will no longer receive updates or support. Please refer to #Discontinuation for more information.


J-Link STM32 Unlock (JLinkSTM32.exe) is a free command line based tool which can be used with STM32 devices, to disable the hardware watchdog (activated by programming the option bytes). Additionally, on connect, it unsecures a read-protected STM32 device by re-programming the option bytes to factory defaults. The J-Link STM32 Unlock utility is part of the J-Link Software and Documentation Pack, which is available for download on the SEGGER webpage.

Note:
Unsecuring a secured device will cause a mass erase of the flash memory.


Discontinuation

The STM32 Utility will be discontinued as of 01.01.2026. After this date, it will no longer receive updates or support.
SEGGER will migrate the functionality of the STM32 Utility to the Device Provisioner.
Please refer to the Migration guide for instructions on transitioning to the Device Provisioner.
If you are missing any functionality from the STM32 Utility in the Device Provisioner, or if you encounter difficulties during the transition, please contact us through one of our support channels.

Migration guide

The functionality of the STM32 Utility can be fully replaced using the Device Provisioner in combination with custom J-Link Script files.
SEGGER will gradually migrate the unlock functionality for all supported STM32 families natively into the Device Provisioner, eliminating the need for custom script files.
The following table shows which device families are already natively supported:

Family Supported Link
STM32C0xxxx NO.png
STM32F0xxxx YES.png ST_STM32F0_Option_Bytes_Unlock
STM32F1xxxx YES.png ST_STM32F1_Option_Bytes_Unlock
STM32F2xxxx YES.png ST_STM32F2_Option_Bytes_Unlock
STM32F3xxxx YES.png ST_STM32F3_Option_Bytes_Unlock
STM32F4xxxx YES.png ST_STM32F4_Option_Bytes_Unlock
STM32F72xxx NO.png
STM32F74xxx NO.png
STM32F76xxx NO.png
STM32G0x0xx NO.png
STM32G0x1xx NO.png
STM32G4xxxx NO.png
STM32H743_5 NO.png
STM32H745_4 NO.png
STM32H7A3_B NO.png
STM32L0xxxx NO.png
STM32L1xxxx NO.png
STM32L4xxxx NO.png
STM32L5xxxx NO.png
STM32U5xxxx NO.png
STM32WBxxxx NO.png
STM32WLxxxx NO.png

If your device family is not yet natively supported, you can:

For details on how to use the Device Provisioner, see: https://kb.segger.com/Device_Provisioner#Usage

Migration example

Using JLinkSTM32 Utility:

JLinkSTM32.exe -SetDeviceFamily STM32F0xxxx

Using Device Provisioner:

DevPro.exe -operation PerformUnlock -if SWD -speed 4000 -ScriptFile PCode_DevPro_ST_STM32F0.pex

Command Line Options

The following command line options can be passed to the J-Link STM32 Unlock utility.

Command line option Explanation
-IP Selects IP as host interface to connect to J-Link. Default host interface is USB.
-SelectEmuBySN See -USB
-USB Connects to a J-Link with a specific S/N over USB
-Speed Starts the J-Link STM32 Unlock Utility with a given initial interface speed.
-SetPowerTarget Enables target power supply via pin 19.
-SetDeviceFamily Specifies a device family
-Exit J-Link STM32 Unlock will close automatically

-IP

Selects IP as host interface to connect to J-Link. Default host interface is USB.

Syntax

-IP <IPAddr>

Example

JLinkSTM32.exe -IP 192.168.1.17

Additional information

To select from a list of all available emulators on Ethernet, please use * as <IPAddr>.

-USB

Connect to a J-Link with a specific serial number via USB. Useful if multiple J-Links are connected to the same PC.

Syntax

-USB <SerialNo>

Example

JLinkSTM32.exe -USB 580011111

-Speed

Starts J-Link STM32 Unlock Utility with a given initial speed. Available parameters are "adaptive", "auto" or a freely selectable integer value in kHz. It is recommended to use either a fixed speed or, if it is available on the target, adaptive speeds. Default interface speed is 1000 kHz.

Syntax

-Speed <Speed_kHz>

Example

-Speed 1000

-SetPowerTarget

The connected debug probe will power the target via pin 19 of the debug connector.

Syntax

-SetPowerTarget <Mode>

Example

JLinkSTM32.exe -SetPowerTarget 1

-SetDeviceFamily

This command allows to specify a device family, so that no user input is required to start the unlocking process.

Syntax

-SetDeviceFamily <Parameter>

Parameter

There are two different options to specify the device family to be used:

  1. By passing the corresponding list index (ID) of the specific family.
  2. By passing the corresponding device string of the specific family.
ID Device string Device family
1 STM32F0xxxx STM32F0xxxx
2 STM32F1xxxx STM32F1xxxx
3 STM32F2xxxx STM32F2xxxx
4 STM32F3xxxx STM32F3xxxx
5 STM32F4xxxx STM32F4xxxx
6 STM32F72xxx, STM32F73xxx STM32F72xxx, STM32F73xxx
7 STM32F74xxx, STM32F75xxx STM32F74xxx, STM32F75xxx
8 STM32F76xxx, STM32F77xxx STM32F76xxx, STM32F77xxx
9 STM32G0x0xx STM32G0x0xx
10 STM32G0x1xx STM32G0x1xx
11 STM32G4xxxx STM32G4xxxx
12 STM32H743_53_50 STM32H743, STM32H750, STM32H753
13 STM32H745_47_55_57 STM32H745, STM32H747, STM32H755, STM32H757
14 STM32L0xxxx STM32L0xxxx
15 STM32L1xxxx STM32L1xxxx
16 STM32L4xxxx STM32L4xxxx
17 STM32L5xxxx STM32L5xxxx
18 STM32U5xxxx STM32U5xxxx
19 STM32WBxxxx STM32WBxxxx
20 STM32WLxxxx STM32WLxxxx

Example

JLinkSTM32.exe -SetDeviceFamily 10          // Selects STM32L1 series
JLinkSTM32.exe -SetDeviceFamily STM32F2xxxx // Selects STM32F2 series

-Exit

In general, the J-Link STM32 utility waits at the end of the unlock process for any user input before application closes. This option allows to skip this step, so that the utility closes automatically.

Syntax

-Exit <Mode>

Example

JLinkSTM32.exe -Exit 1 // J-Link STM32 utility closes automatically