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

Debugging STM32L476 with System Workbench

Last week I attended ST Seminar for STM32L4. The organizers expected everyone to use IAR toolchain, but I tried System Workbench instead. Overall it worked fine, but a couple of issues did come up:

1 - We were told that we needed to configure the ST-Link to “Connect during Reset”. I could not find a configuration option to set this and System Workbench was unable to connect to the target. I then found that I could use the ST-Link Utility to configure the target. After the connection setting was changed, System Workbench worked fine.

2 - Several times I generated a “Null Pointer Exception” when launching the Debugger. The most common causes were (a) Selecting the Debug widget which tried to repeat the previous launch but that project was now closed, (b) Selecting “Debug Configuration..” and immediately selecting “Cancel” (on a project with no launch configuration), (c) Selecting “Debug Configuration..” and selecting the configuration for a closed project. None of the errors stopped Eclipse, I just had to go back and do exactly what was expected.

I had programming and running working on STM32L476 for a short while tonight from System Workbench but now I’ve lost the ability. I can still program and run from STLInk.
The error I’m getting is:
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Warn : use ‘STM32L476.cpu’ as target identifier, not ‘0’
adapter_nsrst_delay: 100
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
adapter speed: 1800 kHz
Info : clock speed 1800 kHz
Error: open failed
in procedure ‘program’
in procedure ‘init’ called at file “embedded:startup.tcl”, line 473
in procedure ‘ocd_bouncer’

    • OpenOCD init failed **

shutdown command invoked

Do you have any idea what has gone wrong?


Sorry, I’m not familiar with the debugger internals.

However I have had System Workbench suddenly lose the ability to connect/download to a target. When that happens I create a new empty project and get that working. Once it does, if the problem was not hardware related I copy my code to the new project as it is faster that figuring out what is wrong with the configuration files in the old project.