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 two short videos (registration required) highlighting:

System Workbench for STM32

Update of STM32CUbeMx project

I started projects under OpenSTM32 with STM32CubeMx according to your ‘step by step’ document.
Now I would like to change my STM32CubeMx project (peripheral initialisation and FreeRTOS).
Is there a way (or method) to do the changes and import them in OpenSTM32 ?


MX is written to update files in place as needed. In order for that to work, you must:

  • leave the files where MX produced them
  • restrict code changes to sections marked by “USER CODE BEGIN” and “USER CODE END”

Just open MX and open the .ioc file in your project directory. (Double click the .ioc file works on Windows.) Make your changes and regenerate code. Any sources that MX did not generate will not be touched. If MX creates new files (such as if you configure a new peripheral) they should be included in your project (but SW4STM support is recent so you might need to help it there.)

It is probably wise to make a backup of your project first. I also like to commit to something like git that will show me changes. That way after regenerating source code, I can easily examine changes and see if there were unintended changes. For example v 4.7.0 had a propensity to eat opening braces in user generated code in main.c.

Does this answer your question?

Thanks for your answer

I made a test
MX generated a new directory under SW4STM32 named “freeRTOS_3 Configuration”
But in my previous “freeRTOS_3” folder .cproject and .project have been changed in .cproject.bak and .project.bak. So I couldn’t use them. And I had to use your “step by step.doc” file to restart the project

I think I missed something
Thanks for your help


Yes, I had forgotten about that. The ‘step by step’ procedure (I cannot take credit for that) does have you rename the project and folder which would cause problems regenerating sources using MX.

I suppose you could undo the renaming steps, run MX and then redo the renaming steps. That’s a little cumbersome. The other alternative would be to regenerate the folders in another location and copy the changes and/or changed files to your working project. Again, you could use something like git to identify the changes.

I’m the culprit that produced the Setp by Step and had you edit the .cproject and .project and delte the COnfiguration on the directory.

I have been told, that if the Projects Build Artifact Name is changed to remove Configuration, things will also work.

I can see where my Step by Step process itself has issues.

Ideally, the best solition would be for OpenSTM32 and and ST Microelectronics to collaborate a little more on STM32CubeMX and the firmware.
Right now, a collection of older firmware is distributed with System Workbench, and the moment that is stopped, the better. STm have hardcoded the code generation in STM32CubeMX and thus there are some issues, such as the Configuration word.

Ach! Maybe a batch file to flip the Configuraiton back and forth would be an interim solution.

Hi Richard,
Thanks for posting your step by step instructions. They have been helpful.

I agree that it would be terrific of STM and OpenSTM32 could collaborate a little better. It seems like something is happening there as MX now supports SW4STM tool chain. OTOH, I think STM has a bit to do to emiminate bugs in MX, a number of which have impacted me on a single project.

In the mean time I wonder if more could be done at the OpenSTM32 end. Spaces in directory names, for example, can be a PITA but it seems that other tool chains (IAR) seem to handle that with no difficulty.

I was just looking around to see if OpenSTM32 is open source. I can’t find anything on the web.



System Workbench for STM32 should be able to handle spaces in paths in most cases, although there is a few cases where this may still cause problems, as if the IDE is installed in such a path.

However we advise to try to avoid this as some external tools may encounter problems with this as they wer often developped under Linux, where spaces in path names are quite unusual...

Regarding the interface with CubeMX there are detailed instructions in Importing a STCubeMX generated project; we do not advise trying to suppress the space in the project name, or rename it, as it could cause more problems than it will solve (and we are working on a cleaner and definitive solution) but just to rename the generated artifact (i.e. program) to give it a more convenient name than “Configuration Xxxx.elf”, although this step is not really needed.