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:


  1. topknot 2016-10-31 02:54

    The _estack values above should be:

    _estack = 0x20020000; /* one byte after last RAM address*/


    _estack = 0x10010000; /* one byte after end of CCMRAM */

    to be 8-byte aligned or you will see errors printing longs and floats

    1. dautrevaux 2016-10-31 18:08


      Thanks for the heads-up; the linker scripts had been updated a while ago, but this documentation page was missed...

      Bernard (Ac6)

  2. TQS-JSC 2018-01-29 11:34

    Hi, i think the line
    char in_ccram_buffer1024 attribute((section(“ccmram”)));
    is missing a dot in front of ccram, should be
    char in_ccram_buffer1024 attribute((section(“.ccmram”)));

  3. kwastek 2019-12-30 17:30

    Are you sure this makes sense? I’m just learning this and I’m trying to figure this out, but comparing to code from STM32Cube, which seems reasonable, it should be
    _siccmram = LOADADDR(.ccmidata)

    ldr r3, =_siccmram
    (although it wouldn’t be called ‘ram’ now, as it would address of the section in flash)