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

error: required section '.rel.plt' not found in the linker script



There is something weird in your link editor command:

  1. You pass the -shared option, requesting to create a shared library
    • This means you have ticked the “Shared” box in Properties >> C/C++ Build >> Settings >> MCU GCC Linker >> Shared library settings
  2. The name you give to the artifact to generate (-+libImportedProject.elf+-) is effectively the name one would expect for a shared library

However this has no chance to work... Shared libraries are not supported on a bare machine and there is no ABI for shared libraries on the Cortex-M processors, so they will never work out-of-the-box.

This does not mean creating shared libraries in this context is impossible, but you’re on your own and have to define the ABI (call conventions, link process, etc.) and provide the appropriate support code (in your application) and link editor script (at least...)

If you just keep the project as generated by CubeMX (that is without this weird option, that needs this .rel.plt section) it compiles like a charm.

Bernard (Ac6)