TrueSTUDIO for STM32 9.1.0 is released

Posted by Mattias Norlander on Oct 19, 2018 3:00:39 PM

In the beginning of 2018 we released the first ever version of "TrueSTUDIO for STM32". It was called version 9.0.0 to highlight that it is a major shift from old products. Version 9.0.2 came in April to provide new STM32 target support. End of last week TrueSTUDIO for STM32 version 9.1.0 was released. Read this article to learn more about new target support and updates made to the ST-LINK GDB-server.

Highlights of the new TrueSTUDIO for SMT32 version 9.1.0

The development team has been working hard on version 9.1.0 for several months. The biggest challenge has been to integrate STM32CubeProgrammer, which we hope will bring big benefits to the TrueSTUDIO users. Below is a full list of changes as well as some details as to which new use cases that this version allows that TrueSTUDIO previous version did not.

High-level change list:

  • ST-LINK GDB-server + STM32CubeProgrammer = Better flash programming
    • Using STM32CubeProgrammer v1.2.1 for erase/program STM32 devices and
      external flash
    • Set faster default speed for SWD interface
  • TrueSTUDIO supports new STM32 devices
    • STM32F730 and STM32F750 Value Line devices with external QSPI flash
    • STM32H750 Value Line devices with external QSPI flash
    • STM32L412 and STM32L422 devices
    • NUCLEO-L412KB and NUCLEO-L412RB-P boards
  • Bug fixes
    • Solved Restart issue (Cortex-M3, Cortex-M4, and Cortex-M7)
    • Solved SWV tracing not working on STM32H7 devices
    • Solved some Build Analyzer and Static Stack Analyzer issues
  • Full details - Read the readme.txt file


ST-LINK GDB-server + STM32CubeProgrammer = Better flash programming

In previous versions of ST-Link GDB-serverflash algorithms necessary to flash STM32 devices have been implemented in the ST-LINK GDB-server itself. In this new release all flash related algorithms has been removed from ST-LINK GDB-server. Instead ST-LINK GDB-server now has a tight integration with STM32CubeProgrammer which is STs latest flash programming utility.


Not only does the ST tool development teams reduce the workload to implement, test and maintain two different solutions for flash programming, but more importantly we pave the way for additional future features that would have been difficult to acheive with previous versions of the ST-LINK GDB-server.

What does this change mean to an STM32 user moving from an older version of TrueSTUDIO?

This is the first release with this "new approach", the design is however made with backwards compatibility for legacy TrueSTUDIO projects in mind. Your old projects and debug configurations will work just as well in TS 9.1.0 as they did in previous versions of TS.

When the load command in the GDB startup script is executed, TrueSTUDIO will convert the build output elf file into an srecord file and automatically invoke STM32ubeProgrammer_CLI.exe to carry out the flash operation of the srecord files. You will be able to monitor the launch flow and flash progress in the Console view of TrueSTUDIO. Upon flash operation completion STM32CubeProgrammer hands back the debugger connection to the ST-LINK GDB-server and debugging can be initiated.


What are the major benefits with the STM32CubeProgrammer integration?

The new approach allows some new use cases and on top of that boosts the performance signficantly. Here are some example of the benefits provided:

Faster flash programming

The new ST-LINK GDB-server has significantly increased flash programming performance. Exact figures depends on the use case.  There is of course a small performance penalty for converting the elf file to srecord and for launching STM32CubeProgrammer to carry out the flashing. But STM32CubeProgrammer has much higher flash programming performance then older versions of ST-LINK GDB-server. In practice this means that users with large code bases will experience the largest performance increase. Try it out and let us know what you think in a comment below!

Supported external flash memories

STM32CubeProgrammer supports flashing external QSPI flash memory. How is this achieved? STM32CubeProgrammer bundles STLDR files. An STLDR file is a bootloader in elf file format that is downloaded and executed in target. The bootloader initializes clocks and pins to the external flash memory and allows STM32CubeProgrammer erase and write the external flash memory.


The TrueSTUDIO GUI has been extended with a checkbox to enable external flash memoy management. The user can then, using a Scan button, scan the folder C:\Program Files (x86)\Atollic\TrueSTUDIO for STM32 9.1.0\Servers\STM32CubeProgrammer\bin\ExternalLoader for STLDR-files, and select the relevant file depending on board and external flash memory chip. When the debugger this information is used to invoke STM32CubeProgrammer.

Support for custom external flash memory

Another use case provide with the new ST-LINK GDB-server via STM32CubeProgrammer is the possibility to write your own bootloader for an external flash memory that is not supported out-of-the-box.


STM32CubeProgrammer provides documentation on which functions that need to be implemented as well as template projects for EWARM, MDK-ARM and TrueSTUDIO. Read more about this in chapter 2.3.3 Developing customized loaders for external memory in the document UM2237: STM32CubeProgrammer software description.


TrueSTUDIO supports new STM32 devices

Most new TrueSTUDIO version are synchronised with releases of new STM32 devices. Version 9.1.0 is released to make sure that TrueSTUDIO allow users to develop projects for the new STM32F7 and STM32H7 Value MCUs. How are these MCU series different from the already availbale STM32F7/STM32H7 MCUs? The Value Line series includes only small RAM and FLASH memories giving the customer the flexibility to add external FLASH memory.

We also welcome two new STM32L4 MCUs into the target support in TrueSTUDIO 9.1.0. These STM32L412 and STM32L422, and two new NUCLEO boards for easy affordable prototyping: NUCLEO-L412KB and NUCLEO-L412RB-P.


Bug fixes

  • Previous TrueSTUDIO versions have had issues with the Restart button in the Debug perspective when using ST-LINK with Cortex-M3/M4/M7 devices. This button only set the Program Counter to Reset_Handler(), it did not reset peripherals. In TrueSTUDIO 9.1.0 the Restart button will trigger a full system reset.
  • SWV tracing on STM32H7 will now work out-of-the-box without having to set various registers in application code. 
  • Previous versions have had issues with hyper-linking to C elements from Build Analyzer and Static Stack Analyzer when using linked resources. This has been especially painful when using example projects from STM32Cube firmware packages since they heavily rely on linked resources. This is fixed in 9.1.0.

Topics: Atollic TrueSTUDIO, SWV, STM32CubeProgrammer, ST-LINK GDB-server, External QSPI FLASH, STM32F7VL, STM32H7VL