SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

System Workbench for STM32

Run without program?

Silly question that probably has an obvious answer but how do I run the code on the target without constantly re-programming it?

When I start a debug session SW4STM32 ALWAYS reprograms the chip and since I’m restarting every few seconds to debug some startup code, I really don’t want to spend the time or risk damage to one of the few prototype boards by the constant writing.

I also have some boards that program fine from st-flash or openocd in telnet mode but fail with the gdb ‘load’ command which means I can’t debug with them as the flash write fails before I get anywhere.

So where is the magic button?

Starting the debugging is part of the make-process, and the chip will only be reprogrammed, if something in your code changed.
You can simply press reset on your board to restart your debug-session.




To debug an already programmed image, just disable image loading by editing your debug configuration: project >> Debug as... >> Debug configuration >> no-load_configuration >> Startup then uncheck the Load image check-box... (but, of course, keep Load symbols checked or you will not be able to debug...)

Be careful however, if you change the source code of your program, you must use a loading configuration at least once, or you will still debug the old program with the new symbol table, yielding incomprehensible results...

Hope this helps,

Bernard (Ac6)

That explains why I’m having trouble - the Startup tab is totally empty.

I just noticed that the “Build (if required) before launching” box is also missing.

On another system it is present - no idea why they should be different!!

Is there a config file I can copy from the working system that will allow the tab to be populated?

Stranger and stranger. I created a new debug config and it had the “Build (if required) before launching” box. I deleted this new config and now my original config also has the “Build (if required) before launching” box as it should. It also now has the first Startup box - but still no “Load Symbols and Executable” no “Runtime Options” and no “Run/Restart Commands”

I think that maybe its just not painting the screen correctly - if I switch between Debugger and Startup a few times the extra options start to appear until I have a full screen of options on the Startup tab rather than it just being blank!!



Did you try resizing the Debug Configurations window? It should look like the attached one, when displaying the Startup tab; if it does not you may want to update your installation (Help >> Check fr Updates...). If you still have display problems, it may be due to your graphic driver or some installation problem, either of your OS or System Workbench.

By the way which OS platform are you using? Windows, Linux, MacOS/X? 32 or 64 bits?

Bernard (Ac6)

The Debug Configurations window is the full height of the screen - its just that it is empty to start with, all other tabs are fully populated.

I’ve done an update and I’m running on a 64bit Kubuntu 14.04.4 LTS. Java -version
java version “1.7.0_101”
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

Selecting another config and then back to the GDB OpenOCD Debugging config initially populates the “Initialization Commands” area, subsequent random tab selections eventually causes the “Load Symbols and Executable”, “Runtime Options” and “Run/Restart Commands” sub-windows to appear and be populated.

My eventual aim would be to determine why some prototype boards program OK from GDB and other fail when they all program OK using st-flash (from the texane/stlink package) and using OpenOCD in telnet mode. That way I wouldn’t have to be concerned with NOT programming the target.



You talk of the “GDB OpenOCD Debugging” configuration. You should use the “Ac6 STM32 Debugging” configuration, not the “GDB Hardware Debugging” configuration. The Ac6 is based on the CDT GDB support, but it is an extended, tailored, configuration.

Bernard (Ac6)

Hi Developer Team,

I think this feature is important. And the process can be simplified to improve user experience (that is what the tool supposed to do right?)

Below is my proposal:

  1. Add an icon to Download image in the toolbar so that user is one-click away from reflashing the target if auto download option is unchecked. This is also good if the user wishes to program a few boards, one after another.
  2. Add an icon to Full chip erase (possibly with readout-protection-disabling capability) .
  3. Highlight with red Probably stale target image message at the bottom most of the debug perspective window frame whenever SW4STM32 thinks so.
  4. Replace Load image with Auto download on debugging check-box in the debug configuration to make the intent clearer (optional).