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

How to create a C++ project ? (Cpp project)

Hi everyone,

I’m trying to do a very simple thing : create a Cpp project on ac6/eclipse.
The same question has already been asked in 2016 but has never been answered...

My base project was written in C but I have a Cpp library to use. I haven’t found any solution to use a Cpp lib in a C project, then I tried to convert my base C project into Cpp. But it doesn’t seem to work. I tried to rename my source files into .cpp but syscall.c doesn’t like it at all and my cpp lib is still red about it.

Where I create a new Cpp project, I get a main.c not a main.cpp, why is that? Is there a solution to get a basic Cpp project from ac6?

Thanks in advance for your help.



You can either convert your existing C project to C++ (by right click on project then “Convert to C++”), or create a new project by choosing “C++ project” instead of “C project”.

However a C++ project is also a C project and the default main.c is still a C file (as are also the ST-provided libraries); you can just rename it as main.cpp (and correct it as it may not be a valid C++ file if you added incompatible C code). You can also include new C++ files in your project and they will be compiled by the C++ compiler; however, don’t forget to declare the functions that must be called from C code as extern "C"

The main difference is that the linker will use the C++ linker, even if you only include C files; note that if your C++ code must include C-compatible header files, these must, typically in a #ifdef c_plusplus section declare all C functions as extern "C".

For example you can start your C header files by

#ifdef c_plusplus
extern "C" {
and terminate them by
#ifdef c_plusplus


Bernard (Ac6)

Thanks Bernard for your answer. It is very helpful.
I cannot know if it works yet because I think I first have to fix my external library issue. I’ll post another question in the forum about it.