The GDB 'monitor init' and 'monitor reset'
commands supported for better integration with various
development tools and environments.
Error messages improved to provide more details on the
Fixed several defects in the Windows HID communication layer:
port state not changed on closing the probe,
attempts to open port that is already opened,
incorrect copying of responses to the destinatin buffer,
read and write commands removed from the queue too early.
Fixed sending empty packets to ULINK2 probes.
Fixed the Cortex access port `CSW` register left
uninitialized on openinng the device.
Resolves the 'Cannot halt target.' error message when
working with ULINK2 probes.
Fixed the reset procedure for ULINK2 probes.
Resolves the problem with DebugWave hanging on programming
Fixed block-erase flashloader routines for STM32 L0/L1
devices causing flash-programming errors in some cases.
Fixed flash-programming issues exposed in cases when
areas of data to program are not aligned respectively to the
parallelism size (halfword, word or double word) used.
Fixed locking program memory on STM32 L0/L1 devices by
raising the `PECR.PRGLOCK` flag in addition to raising
The programming algorithm is fixed to force locking
program memory between erase and programming operations.
Without such forced lock the programming operations fail on STM32
Added respoistory for Ubuntu 19.04 Disco Dingo. Removed
the respostory for Ubuntu 17.10 Artful Aardvark.
Fixed an issue with the socket connection repeatedly
re-opening when there are no new packets from GDB.
Fixed the misleading
'None of the connected debug probes matches the '' specifier.'
DebugWave now generates a special message when only powered off
targets are discovered.
9 September 2018
Improved the communication performance between the host
and debug pods.
Improved the raw programming speed. For most targets we
now program flash memory as fast as we transfer the data to the
Improved the logic that determines flash areas that need
erase and/or programming.
This significantly improves overall performance in scenarios when
only a small portion of the image has been changed.
Fixed a bug causing the 'Cannot enumerate
devices' error on enumeration of debug pods.
Initial public release.
19 May 2017
Fixed a source of accidental crashes.
Improved the logic that determines when to apply mass
We now handle blocks that are known to be blank in a special way
so such blocks do not trigger unnecessary mass erases anymore.
17 April 2017
Added support for Nucleo boards.
The flash programming algorithm optimized for faster
Fixed the issue with erasing areas of flash memory that
are already blank.
Fixed reading, writing and recovering of WinUSB pipes
used to communicate with ST-Link pods.
Fixed setting JTAG/SWD frequency for ST-Link pods.
Fixed timeout errors during mass erase.
1 March 2017
Supported automatic target MCU identification and
The support for ST-Link pods on Windows is reworked to
rely directly on WinUSB calls instead of using the
STLinkUSBDriver.dll library from ST.
This improved diagnostics of communication errors and recovery
Also, with this change we now support retrieving ST-Links serial
numbers and thus complete the support for simultaneous work with
multiple debug units.
Added support for ST-Link pods on Linux.
Supported tracing of internal library calls.
4 December 2016
Supported Keil ULINK2 (CMSIS-DAP) pods.
Added support for STM32L062T8 and STM32F071C8 targets.
The logging facility improved to provide more details
about raised errors.
26 June 2016
Supported breakpoints for Cortex-M7 devices.
Implemented automatic identification of target cores.
25 May 2016
More of STM32 devices supported:
F765BG/BI/IG/II/NG/NI/VG/VI/ZG/ZI, L082CZ, L432KB/KC, L442KC,
Fixed the initialization sequence for STM32F7 devices.
The flash programming logic has been reworked to use a
faster single-pass algorithm.
The new algorithm provides better performance and allows flexible
scheduling of individual programming steps whereas the old
algorithm operates by separate "compare", "erase", "program" and
16 December 2015
Target-specific drivers replaced with a universal one.
The bootloaders the universal driver generates are both faster
and more accurate in diagnostic of hardware issues.
Also, with the new driver adding support for new devices is a
less effort now.
Supported dual-bank flash layouts of STM32427xx,
STM32F437xx, STM32429xx and STM32F439xx devices (with the
'OPTCR.DB1M' bit set to 1).
Fixed reading of the 'XPSR' register.
Failure backtraces are more informative now.
20 October 2015
Fixed mass erase for STM32 L1 targets.
Fixed erase and programming of STM32 F1 XL-density
devices: STM32F101RF, STM32F101RG, STM32F101VF, STM32F101VG,
STM32F101ZF, STM32F101ZG, STM32F103RF, STM32F103RG, STM32F103VF,
STM32F103VG, STM32F103ZF, STM32F103ZG.
The STM32 F1 driver is fixed to drop '.MERx' bits
after mass erase, thus causing subsequent flash write attempts to
Fixed an issue with erasing last pages and sectors.
Refined diagnostic messages.
Eliminated unnecessary log output.
The library now backtraces internal calls on pod- and
target-related errors to help to diagnose and recover issues that
are hard to reproduce.
More self-consistency checks added.