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

new to ST in general... actually new to ARM


Nice explanation Ciprian,

Note that creating the proper layout and getting the latest supported firmware from ST can be done simply through System Workbench for STM32:

  1. Create an empty directory for your workspace to be sure you start from a clean environment
  2. Create a new C or C++ Ac6 STM32 MCU Project targeting your MCU
  3. Choose the firmware you want (HAL for example)
  4. Select the “Extract all firmware in separate folder” check box
    • This will creta a generic project, with the wole content of the ST firmware
      • This project is by default created closed
      • You must open it (right click >> Open project) to look at its content
    • This is not a compilable C or C++ project, just a set of files
    • Use it to browse through the ST provided files and copy the ones you may need in your own project
  5. Select the “As sources” radio button
    • Then the needed firmware elements will be added to your project, not to an external library project
    • This may simplify adapting the code and configuration to your needs
    • Otherwise the ST firmwares will be loaded in a separate library project, automatically linked to your project
      • This will allow to reuse the same library project for several projects
      • However some firmwares (notably FreeRTOS) may be copied in your project anyway, as project-specific configuration may be needed
      • Currently, as not all additional firmwares are fully configured by System Workbench, the first solution may be simpler to use
  6. Select the additional components you want to have in your project
    • You may also, later on, add more just by draging and dropping from the firmware reference project to your project

Then you project structure will look like the one you manually created and most (if not yet all) include and library paths will be set up automatically.


Thanks Bernard for explanation, and for work on System Workbench project.