stlink/CHANGELOG.md

54 KiB

stlink Changelog

v1.7.1

Release date: 2022-xx-xx

This release drops support for some older operating systems. Check project README for details.

Updated system requirements:

  • cmake >= 3.10.2
  • libusb >= 1.0.21
  • libgtk-dev >= 3.22.30

Features:

  • Support for writing option bytes on STM32F0/F1/F3 (#346, #458, #808, #1084, #1112)
  • Added chip-IDs for STM32G0B0/G0B1/G0C1/G050/G051/G061 (#1140)
  • Added option byte info for STM32F411XX (#1141)
  • Expanded and revised list of chips (#1145, #1164)
  • [STM32H72X/3X]: Added full access to all device memory (#1158, #1159)
  • Added support for STM32WLEx (#1173)
  • Added support for STLINK-V3 devices with no MSD (#1185)
  • Updated gdb-server.c to allow external memory access on STM32H73xx (#1196, #1197)
  • Erase addr size / section of the flash memory with st-flash (#1213)

Updates & changes:

  • [refactoring] Moved chip-specific parameters into separate files (#237, #1129)
  • Added instructions for bug-reports and feature-requests to contribution guidelines (#906)
  • Added travis CI configuration for macOS 10.14 to maintain capability for 32-bit compilation (#f5ada94)
  • Updated description of chip id 0x0457 to L01x/L02x (#1143, #1144)
  • Dropped execute bits from source code files (#1167)
  • Use proper Markdown headers for supported MCUs (#1168)
  • Removed redundant array (#1178)
  • Updated chip config files from the library structs (#1181)
  • [doc] Corrected file path in tutorial (#1186)
  • Improved chipid checks and printouts (#1188)

Fixes:

  • cmake: Install shared libraries in proper directories (#1142)
  • Fixed clearance of the H7 dual bank flag (#1146, #1147)
  • Fix for 'libusb_devices were leaked' when no ST-LINK programmer was found (#1150)
  • Set of fixes and improvements (#1154)
  • Removed limit check for WRITEMEM_32BIT (#1157)
  • Fixed get_stm32l0_flash_base address for STM32L152RE (#1161, #1162)
  • Fixed segfault if chip was not found in chip config files (#1138, #1163, #1165, #1166, #1170)
  • Fixed parsing hex numbers in chip config files (#1169)
  • Corrected flash_pagesize to use hex format (#1172)
  • Fixed compilation for MSVC (#1176)
  • Fixed few warnings for msvc about type conversion with possible lost data (#1179)
  • st-flash and other utilities search for chip files in the wrong directory (#1180, commit #c8fc656)
  • Fixed broken build on 32 bit systems (#985, #1175, commit #c8fc656)
  • Define 'SSIZE_MAX' if not defined (#1183)
  • Fixed compliation for OpenBSD 7.0 (#1202)
  • Included 'SSIZE_MAX' from 'limits.h' in 'src/common.c' (#1207)

v1.7.0

Release date: 2021-04-25

This release drops support for the STLINK/V1 programmer on macOS 10.13.

Features:

  • Extended set of cmd line arguments for st-info and st-util (#332, #990, #1091, #1114)
  • Extended support for STM32H7 & rework of software reset (#532, #801, #868, #1008, #1059, #1063, #1071)
  • Added support for STM32H742/743/753 (#671, #793, #823, #998, #1052)
  • Official support for STLINK-V3 programmers (commit #5e0a502, #820, #1022, #1025)
  • Added preliminary support for STM32L5x2 (#904, #999)
  • Option bytes on the STM32F767 ZIT6 Nucleo-144 (#968, #997)
  • Use SetConsoleCtrlHandler for Windows (#1021)
  • Increase STM32L0 option_size to 20 (#1046)
  • st-util: Add specialized memory map for STM32H7 devices (#1060)
  • Support for STM32F4 option bytes (#1062)
  • Link for WIN32 & APPLE with stlink-static (#1069)
  • ITM functionality for STLink/V2 and STM32Fxx chipsets (#136, #179, #815, #1072)
  • Included ITM functionality for building with MSVC (#1080)
  • Update for CI integration (commit #0eebc9a, #1118)

Updates & changes:

  • [doc] Added tutorial section on unknown chip id error (commit #229c721, #107, #568)
  • [doc] Updated documentation on target resetting (#261, #533, #1107)
  • [doc] Added note on (gdb) run command (commit #03793d4, #267)
  • [doc] st-flash --reset parameter (one solution for #356) (#642)
  • [refactoring] General maintenance (#864, #976, #978)
  • Imported debian pkg-settings (#986)
  • Add support for FreeBSD's libusb reimplementation (#992, #993)
  • [doc] Added explanation about STM32F103 fake chips (commit #a66557a, #1024)
  • [doc] Added example for output of st-info --probe (#1007, #1049)
  • [refactoring] Correctly handle endianness without reference to host platform (#1081)
  • Check format string for log messages (#1093)
  • Removed abort() from stlink-lib (#1116)

Fixes:

v1.6.1

Release date: 2020-06-01

This release drops support for some older operating systems. Check project README for details.

Features:

  • Basic compatibility for STLink/V3 programmer (#271, #863, #954, #1023)
    • Added support for JTAG command API v2 & distinguish protocol versions v1 and v2
    • Compatibility with the STLink/V3 firmware which dropped support for the previous API v1
    • As of firmware version J11 the STLink/V1 programmer supports API v2 commands as well
  • Display programmer serial when no target is connected (#432, #933, #943)
  • Added connect under reset to stlink_open_usb( ) (#577, #963)
  • Support for STM32L1, SM32L4 option bytes write (#596, #844, #847)
  • Added CMAKEFLAGS and install target (#804, #935)
  • Support for STM32G4 (#822)
  • Added aliased SRAM2 region in the L496 memory map (#824)
  • Improved support for STM32G0 (#825, #850, #856, #857)
  • Added postinst script with depmod -a for make package (#845, #931)
  • Calculate checksums for flash operations (#862, #924)
  • Adjust the JTAG/SWD frequency via cmdline option (#893, #953)
  • Added usb PID and udev rules for STLink/V2.1 found on Nucleo-L432KC and Nucleo-L552ze boards (#900)
  • STM32G0/G4 improvements (#910)
    • Enable mass erase with a flash programming check
    • Handle G4 Cat3 devices with configurable dual bank flash by using a helper

Updates & changes:

  • [doc] Updated compiling instructions (#113, commit #10ae529)
  • Defined libusb version compatibility for supported systems via LIBUSB_API_VERSION (#211, #782, #895)
  • Improved argument parsing for CLI tools (#378, #922)
  • [doc] Updated tutorial: macOS STLink/V1 detection (#574, #587)
  • Enhanced error log with file path for map_file() (#650, #879, #921)
  • Enhanced output for error msg addr not a multiple of pagesize, not supported (#663, #945)
  • Updated STLink/V1 driver for macOS (#735, #964)
  • Package distribution: Provide Windows binaries via Debian-based cross-build (#738, #795, #798, #870, #955)
    • [refactoring] Update, corrections & cleanup for build settings (see #955 for details)
    • New cpack package-config for DEB and RPM build
    • Update for travis build configuration: builds for clang -m32, clang-9, MinGW-cross on linux
    • Updated steps for release preparation
    • Project contributors now listed in separate file
    • Test files & gui now use shared stlink-library
  • [doc] Verify correct udev configuration for device access (#764)
  • Added more error info to WLOGs during probe (#883)
  • [doc] Added missing documentation for stlink-gui (#884)
  • Added check for libssp during compilation (#885)
  • Silenced unnecessary messages (#886)
  • [doc] Defined libusb & cmake version compatibility (#896, #897, #899, commit #27aa888)
  • Update for STM32G471/473/474/483/484 devices (#901)
  • [doc] st-flash --flash=n[k][m] command line option to override device model (#902)
  • [refactoring] Improved cmake build process (#912)
    • Set up a libusb log level accordingly to verbosity (#894
    • [compatibility] Updated libusb to v1.0.23 ([#895](https://github.com/stlink-org/stlink/pull/895, #1089)
    • Updated compiling doc & version support (#896, #897, #899)
    • Version requirements & pkg-maintainer
    • Fixed install paths in build script
    • Updated C-flag -std=gnu99 to gnu11)
    • Added cmake uninstall target (#619, #907)
    • Integrated module GNUInstallDirs.cmake (#557)
    • [doc] Defined version compatibility and installation instructions for macOS
    • [refactoring] libusb detection
    • Deprecated old appveyor-mingw script
  • [refactoring] BSD-License-compliant rewrite of flashloader source files (#915, #932)
  • [refactoring] Overall option code rework (#927)
  • [refactoring] Build settings / GUI-Build on UNIX-based systems if GTK3 is detected (#929)
  • [refactoring] Reconfiguration of package build process (#931, #936, #940, commit #9b19f92)
  • [refactoring] st-util: Removed now useless v1/v2 STLink version stuff (#934)
  • [refactoring] Cleanup for option bytes and flash settings (#941)
  • Added compilation guideline for MSVC toolchain (#942)
  • [refactoring] Cleanup of cmake build process (#944, #946, #947)
    • libusb package extraction no longer requires 7zip as an external unarchiver

Fixes:

  • Fixed wait-loop for flash_loader_run() (#290)
  • Better argument parsing for CLI tools: stlink_open_usb can address v1, v2, v3 (#378, #922)
  • Clear the PG bit before setting the PER bit (#579, #876)
  • Fixed compilation issues with int length on 32-bit platforms (#629, #908)
  • Fixed st-info --probe mechanism (#679, #918)
  • [regression] Fixed sign-compare (size != rep_len) in usb.c (#772, #869, #872, #891)
  • Fixed dead loop after an unexpected unplug (#780, #812, #913)
  • Avoid re-define of O_BINARY on Windows (#788)
  • Fixed stlink lock-up when not connected to a device via JTAG / SWD (#835, #943)
  • Fixed st-flash manpage read example (#858)
  • Fixed stlink support with no mass storage (#861)
  • Make version.cmake more error-resistant (#872)
  • Error return in failed probe (#887, #890)
  • Fixed broken build on 32-bit systems (#919, #920)
  • st-flash: Minor usage fix and make cmdline parsing more user friendly (#925)
  • [regression] Restored functionality of make test builds (#926, #929)
  • Fixed compilation error due to uninitialized cpuid (#937, #938)
  • Fixes for STM32F0 flashloader (#958, #959)
  • Set static link for libssp (stack-smashing protection) (#960, #961)
  • Fixed udev rules installing to wrong directory (#966)
  • Fixed formatting for options display in st-flash & st-info (commits #c783d0e and #562cd24)

v1.6.0

Release date: 2020-02-20

Major changes and added features:

  • Initial support for STM32L41X (#754, #799)
  • Verified support for CKS32F103C8T6 and related CKS devices with Core-ID 0x2ba01477 (#756, #757, #805, #834, Regression-Fixes: #761, #766)
  • Added preliminary support for some STM32G0 chips (#759, #760, #797)
  • Added support for mass erasing second bank on STM32F10x_XL (#767, #768)
  • Added call to clear PG bit after writing to flash (#773)
  • Added support to write option bytes for the STM32G0 (#778)
  • Added support for STM32WB55 chips (#786, #810, #816)
  • Added STLink V3SET VID:PIDs to the udev rules (#789)
  • Support for STM32+Audio v2-1 firmware (#790)
  • Build for Windows under Debian/Ubuntu (#802)
  • Allow for 64 bytes serials (#809)
  • Added full support for STLINK CHIP ID L4RX (#814, #839)
  • Added support for the STLink/V2.1 when flashed with no mass storage (PID 0x3752) (#819, #861)
  • Added support for writing option bytes on STM32L0xx (#830)
  • Added support to read and write option bytes for STM32F2 series (#836, #837)
  • Added support to read and write option bytes for STM32F446 (#843)

Updates and fixes:

  • Fixed an issue with versioning stuck at 1.4.0 for versions cloned with git (#563, #762, #772)
  • Fixed unkown chip id, piped output and st-util -v (#665, #763)
  • Updated STM32F3xx chip ID that covers a few different devices (#685, #758)
  • Made udev rules and modprobe conf installation optional (#741)
  • Fixed case when __FILE__ doesn't contain either / nor \\ (#745)
  • Fixed double dash issue in doc/man (#746, #747)
  • Compiling documentation: package is called libusb-1.0-0-dev on Debian (#748)
  • Only do bank calculation on STM32L4 devices with dual banked flash / Added chip-ID 0x464 for STM32L41xxx/L42xxx devices (#751)
  • Added O_BINARY option to open file (#753)
  • Fixed versioning when compiling from the checked out git-repo (#762, #772)
  • win32: move usleep definition to unistd.h (#765)
  • Fixed relative path to the UI files needed by stlink-gui-local (GUI) (#770, #771)
  • Added howto for sending NRST signal through GDB (#774, #776, #779)
  • Fixed package name devscripts in doc/compiling.md (#775)
  • Fixed few potential memory/resource leaks (#803, #831)
  • Updated Linux source repositories in README.md: Debian and Ubuntu (#821, #835, #859)
  • Do not issue JTAG reset on STLink/V1 (#828)
  • Fixed flash size of STM32 Discovery VL (#829)
  • Updated documentation on software structure (#851)

General project updates:

  • Updated README.md, CHANGELOG.md and issue templates (Nightwalker-87)
  • Fixed travis build config file (Nightwalker-87)
  • Added CODE_OF_CONDUCT (Nightwalker-87)
  • Archived page from github project wiki to doc/wiki_old.md (Nightwalker-87)

v1.5.1

Release date: 2018-09-13

Major changes and added features:

  • Added reset through AIRCR (#254, #540, #712)
  • Added creation of icons for .desktop file (#684, #708)
  • Added desktop file for linux (#688)
  • Added button to export STM32 flash memory to a file (#691)
  • Updated libusb to 1.0.22 (#695) - (related Bugs: #438, #632)
  • Added icons for stlink GUI (#697)
  • Added support for STM32L4R9 target (#694, #699)
  • Added memory map for STM32F411RE target (#709)
  • Implemented intel hex support for GTK GUI (#713, #718)

Updates and fixes:

  • Fixed missing flash_loader for STM32L0x (#269, #274, #654, #675)
  • Fix for stlink library calls exit() or _exit() (#634, #696)
  • Added semihosting parameter documentation in doc/man (#674)
  • Fixed reference to non-exisiting st-term tool in doc/man (#676)
  • Fixed serial number size mismatch with stlink_open_usb() (#680)
  • Debian packaging, cmake and README.md fixes (#682, #683)
  • Disabled static library installation by default (#702)
  • Fix for libusb deprecation (#703, #704)
  • Renamed STLINK_CHIPID_STM32_L4R9 to STLINK_CHIPID_STM32_L4Rx (#706)
  • [regression] stlink installation under Linux (Debian 9) is broken since #695 (#700, #701, #707)
  • Fixed flash memory map for STM32F72xxx target (#711)
  • Proper flash page size calculation for STM32F412xx target (#721)
  • Return correct value on EOF for semihosting SYS_READ (#726, #727, #728, #729, #730, #731, #732)
  • FreeBSD defines LIBUSB_API_VERSION instead of LIBUSBX_API_VERSION (#733)

v1.5.0

Release date: 2018-02-16

Major changes and added features:

  • Added support of STM32L496xx/4A6xx devices (#615, #657)
  • Added unknown chip dummy to obtain the serial of the STlink by a call to st-info --probe (#641)
  • Added support for STM32F72xx (chip-ID: 0x452) devices (commit #1969148)

Updates and fixes:

  • Fixed verification of flash error for STM32L496x device (#617, #618)
  • Updated Linux source repositories in README.md: Gentoo, Fedora and RedHat/CentOS (#622, #635)
  • Updated changelog in debian package (#630)
  • Added LIB_INSTALL_DIR to correct libs install on 64-bit systems (#633, #636)
  • Fixed write for microcontroller with RAM size less or equal to 32K (#637)
  • Fixed memory map for STM32L496xx boards (#639)
  • Fixed __FILE__ base name extraction (#624, #628, #648)
  • Added debian/triggers to run ldconfig (#664)
  • Fixed build on Fedora with GCC 8 (#666, #667, #668)

v1.4.0

Release date: 2017-07-01

Major changes and added features:

  • Allow building of debian package with CPack (#554, commit #5b69f25)
  • Added support for STM32L011 target (#564, #565, #572)
  • Added support for flashing second bank on STM32F10x_XL (#592)
  • Initial support to compile with Microsoft Visual Studio 2017 (#602)
  • Added support for STM32L452 target (#603, #608)

Updates and fixes:

  • Added --flash=n[k][m] command line option to override device model (#305, #516, #576)
  • Updated libusb to 1.0.21 for Windows (#562)
  • Fixed low-voltage flashing on STM32F7 devices (#566, #567)
  • Fixed building with mingw64 (#569, #573, #578, #582, #584, #610, #846)
  • Fixed possible memory leak (#570, #571)
  • Fixed installation path for shared objects (#581)
  • Fixed a few -Wformat warnings (#582)
  • Removed unused defines in mingw.h (#583)
  • Skip GTK detection when cross-compiling (#588)
  • Fixed compilation with GCC 7 (#590, #591)
  • Fixed flashing to F0 device targets (#594, #595)
  • Fixed wrong counting when flashing (#605)

v1.3.1

Release date: 2017-02-25

Major changes and added features:

  • Added support for Semihosting SYS_READC (#546)
  • Added support for STM32F413 (#549, #550, #758)
  • Added preliminary support for STM32L011 to see it after probe (chip-ID 0x457) (#558, #598)

Updates and fixes:

  • cmake/CPackConfig.cmake: Fixup OSX zip filename
  • Updated source repositories in README.md: Windows, macOS, Alpine Linux
  • Compilation fixes (#547, #551, #552)
  • Stripped full paths to source files in log (#548)
  • Fixed incorrect release folder name in docs (#560)
  • Fixed compilation when path includes spaces (#561)

v1.3.0

Release date: 2017-01-28

Major changes and added features:

  • Deprecation of autotools (autoconf, automake) and fixed build with MinGW (#83, #431, #434, #465)
  • Added intel hex file reading for st-flash (#110, #157, #457, #459)
  • Added support for ARM semihosting to st-util (#147, #227, #454, #455)
  • Added manpages (generated with pandoc from Markdown) (#208, #464, #466, #467)
  • Removal of undocumented st-term utility, which is now replaced by st-util ARM semihosting feature (#228, #507, commit #3fd0f09)
  • Support serial numbers argument for st-util and st-flash to probe and control multiple connected programmers (#318, #398, #541)
  • Added 'k' (kill) command to gdb-server, which resets the connection (#358, #525, #527, #528)
  • Merge st-probe tool into st-info (#398)
  • Added support for native debian packaging (#444, #472, #473, #482, #483, #484, #485)
  • Rewritten commandline parsing for st-flash (#459)
  • Added --reset command to st-flash (#505)

Chip support added for:

Updates and fixes:

  • Do a JTAG reset prior to reading CPU information when processor is in deep sleep (#291, #428, #430, #451)
  • Fixed unaligned addr or size when trying to write a program in RAM (#323)
  • Fixed flashing on STM32_F3_SMALL (#325)
  • Fixed STM32L-problem with flash loader (#390, #407, #408)
  • Don't read the target voltage on startup, because it crashes STM32F100 (#423, #424)
  • Added a useful error message instead of [!] send_recv (#425, #426)
  • Fixed STM32F030 erase error (#442)
  • Fixed memory map for STM32F7xx (#453, #456)
  • Redesign of st-flash commandline options parsing (#459)
  • Set SWDCLK and fixed jtag_reset bug (#462, #475, #534)
  • doc/compiling.md: Add note about installation and ldconfig (#478, commit #be66bbf)
  • Fixed Release target to generate the man-pages with pandoc (#479)
  • Fixed Cygwin build (#487, (#506)
  • Reset flash mass erase (MER) bit after mass erase for safety (#489)
  • Wrong extract command in FindLibUSB.cmake (#510, #511)
  • Fixed compilation error on Ubuntu 16.10 (#514, #525)

v1.2.0

Release date: 2016-05-16

Features added:

  • Added multiple stlink probing (st-info --probe, st-info --hla-serial) with printing serial in hex and OpenOCD hla_serial format (Jerry Jacobs)
  • Added stlink usb probe API functions (Jerry Jacobs)
  • Added parameter to specify one stlink v2 of many (Georg von Zengen)

Updates and fixes:

  • Refactoring/fixes of flash loader (Maxime Coquelin)
  • Synchronized cache for STM32F7 (Tristan Gingold)
  • Allow flashing of STM32L4 down to 1.71 V (Greg Meiste)
  • Fix on STM32L4 to clear flash mass erase flags on CR (Bruno Dal Bo)
  • Proper writing of page 0 of second bank for STM32L476xe (Tobias Badertscher)
  • Trace the read data in stlink_read_debug32 and not the address of the variable (Tobias Badertscher)
  • Mac OS X El Capitan platform support confirmation (Nikolay)
  • Do not send a NULL at end of packets to gdb (Tristan Gingold)
  • Correctly compute flash write size for partial pages (Dave Vandervies)
  • _stlink_usb_reset use hardreset (mlundinse)
  • Make sure MCU is halted before running RAM based flashloaders (mlundinse)
  • Could not flash STM32_F3_SMALL (Max Chen)
  • STM32F4 8-bit support for 1.8v operation (Andy Isaacson)
  • Fixed STM32F2xx memory map (Nicolas Schodet)
  • Memory map for STM32F42xxx and STM32F43xxx devices (Craig Lilley)
  • Stm32l0x flash loader (Robin Kreis)
  • Modified determination of erased byte pattern when flashing (#193, #377)
  • Use libusb synchronous api (#194, #225, #374)
  • Fixed segfault when programmer is already busy and NULL pointers are in the list (#256, #394)
  • Fixed gdb-server: Cortex M0 chips have no FP_CTRL register for breakpoints (#266, #273, #341)
  • Fixed issue where "unknown chip id!" was seen every other time (#352, #367, #381)
  • Send F4 memory-map and features for STM32F429 (#188, #196, #250, #251) (Release v1.1.0)
  • Added AHB3 Peripherals definition for STM32F4 (#218, #288) (Release v1.1.0)
  • Reset: st-flash does not work when CPU is in sleep mode (#62) (Release v1.0.0)
  • Ensure USB device search succeeds if the matched device is at index 0 (#126, #151) (Release v1.0.0)
  • Corrected flash size register address for STM32F2 devices (#278) (Release v1.0.0)

Chip support added for:

  • STM32L053R8 (Jean-Luc Béchennec)
  • STM32F7 Support (mlundinse)
  • Added STM32L4 to CHIPID #defines and devices[], flash driver and loader (Dave Vandervies)
  • Basic support for STM32F446 (Pavel Kirienko)
  • STM32F303 High Density
  • STM32F469/STM32F479 (#345, #555) (Release v1.2.0)
  • STM32L1xx Cat.2 devices (Nicolas Schodet)
  • STM32L1xx (chip-ID 0x427) (#152, #163, #165) (Release v1.0.0)
  • Added SIGINT handler for stlink cleanup (#31, #135) (Release v1.0.0)

Board support added for:

  • Nucleo-F303RE (Kyle Manna)
  • Nucleo-F411RE (texane)

Build system:

  • Travis: Initial support for Travis continues integration on Linux & Mac OS X (Jerry Jacobs)
  • CMake: Document in README.md and add extra strict compiler flags (Jerry Jacobs)
  • CMake: First stab at a cmake build (Josh Bialkowski)