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

Debugger does nothing

I have used the STMCube IDE on a previous STM32 project with the ST-LINK interface on the STM32-F3-DISCOVERY eval board, but I’m now trying to build and load a project a vendor has supplied us with ( and they use system workbench ), and the debugger does nothing. System workbench reports some nonsense windows error about joining drives ( obviously someone is following a wrong pointer somewhere to the error string and this seems to be a common error among eclipse based IDEs on Windows whenever gdb “doesn’t work” ), and the RST and SWCLK signals coming out of the debug board don’t move the whole time, so it isn’t even trying to communicate. Any idea where to even start?

What kind of errors do you get? It’s difficult to help you with so few information

To debug under SW4STM32, you must create a debug configuration; these are not part of the project you’ve got from your vendor, so you have to create your own by right-clicing on the project then selecting Debug As >> Ac6 STM32 C/C++ Application; this should start the debugger correctly.

What could cause problem is if the project was configured for a board and you have another board connected to your PC. You should then create a new project, targeting the correct board and copy the source code for your project (just the application code itself, not the libraries).


Bernard (Ac6)

Error in final launch sequence
Failed to execute MI command:
-target-select remote localhost:3333

Error message from debugger back end:
localhost:3333: The system tried to join a drive to a directory on a joined drive.
localhost:3333: The system tried to join a drive to a directory on a joined drive.

Of course I created a debug configuration of the Ac6 STM Debugging type. I’m not sure what you mean about targeting a board. You target a processor; the IDE isn’t going to know anything about our proprietary board.

I have created a debug configuration in STM32CubeIDE and have been using that to connect to the target and load the image built in SystemWorkbench.


When you create a SW4STM32 project you have to specify a target board; when using a proprietary board you can create a custom board and will thn have to specify the exact SoC that is included on the board (and of course the board-specific initializations and definitions will have to be provided by your code, instead of being predefined by the firmware).

The errors you have seem to indicate that you have source paths in your imported project that reference locations on your vendor build system; that’s why it is usually better to create a new project, although you may have to manually translate compilation options. If you keep the existing project you should probably check in project properties >> C/C++ General >> Paths and Symbols that all paths in Includes, Library Paths and Source Location are workspace-relative paths or are based on Eclipse variables, for example ${ProjDirPath}, and only name existing paths on your system.

You should also check on C/C++ Build >> Settings that all settings are valid and check paths in the debug configuration, especially in the Source tab.

Bernard (Ac6)