STM32CubeMX

Table Of Contents

- STM32CubeMX documentation
- CubeMX User Manual
  - 1 STM32Cube overview
  - 2 Getting started with STM32CubeMX
  - 3 Installing and running STM32CubeMX
  - 4 STM32CubeMX user interface
  - 5 STM32CubeMX tools
  - 6 STM32CubeMX C Code generation overview
  - 7 Code generation for dual-core MCUs (STM32H7 dual-core product lines only)
  - 8 Code generation with TrustZone enabled (STM32L5 series only)
  - 9 Device tree generation (STM32MPUs only)
  - 10 Support of additional software components using CMSIS-Pack standard
  - 11 Tutorial 1: From pinout to project C code generation using an MCU of the STM32F4 series
  - 12 Tutorial 2 - Example of FatFs on an SD card using STM32429I-EVAL evaluation board
  - 13 Tutorial 3 - Using the Power Consumption Calculator to optimize the embedded application consumption and more
  - 14 Tutorial 4 - Example of UART communications with an STM32L053xx Nucleo board
  - 15 Tutorial 5: Exporting current project configuration to a compatible MCU
  - 16 Tutorial 6 - Adding embedded software packs to user projects
  - 17 Tutorial 7 - Using the X-Cube-BLE1 software pack
  - 18 Creating LPBAM projects
  - Appendix A STM32CubeMX pin assignment rules
  - Appendix B STM32CubeMX C code generation design choices and limitations
  - Appendix C STM32 microcontrollers power consumption parameters
  - Appendix D STM32Cube embedded software packages
  - Revision history
- Release Notes
  - Release details
  - Release fixes
  - Known limitations
    - Miscellaneous
    - 2.1. When selecting microcontrollers in the STM32C0 series
    - 2.2. When selecting microcontrollers in the STM32G0 series
    - 2.3. When selecting microcontrollers in the STM32G4 series
    - 2.4. When selecting microcontrollers in the STM32H5 series
    - 2.5. When selecting microcontrollers in the STM32H7 series
    - 2.6. When selecting dual-core microcontrollers in the STM32H7 series
    - 2.7. When selecting microcontrollers in the STM32L5 series
    - 3.4. How to improve the wake-up from Stop sequences without relying on the global SystemClock_Config()
    - 3.3. List pinout-compatible microcontrollers
    - 3.2. DDR binaries for the STM32MP1 boards
    - 3.1. Command line authentication required
    - 2.21. Symbolic links on Ubuntu
    - 2.20. User manual
    - 2.19. DDR test suite
    - 2.18. STM32CubeIDE toolchain
    - 2.13. When selecting microcontrollers in the STM32WL series
    - 2.11. When selecting microcontrollers in the STM32WB series
    - 2.17. When using additional software packs
    - 2.16. When using the Example Selector
    - 2.15. When using the Memory Management Tool
    - 2.14. When selecting microprocessors in the STM32MP1 series
    - 2.11.1. When selecting microcontrollers in the STM32WB0 product lines
    - 2.12. When selecting microcontrollers in the STM32WBA series
    - 2.13.1. When selecting microcontrollers in the STM32WL33 product lines
    - 2.10. When selecting microcontrollers in the STM32U5 series
    - 2.9. When selecting microcontrollers in the STM32U3 series
    - 2.8. When selecting microcontrollers in the STM32N6 series
- Running STM32CubeMX in command-line mode
- FAQ
- Community

# 2.6. When selecting dual-core microcontrollers in the STM32H7 series

Only Boot0 is supported: both cores boot at once.

Import from and to dual-core STM32H7 is not supported.

For memory-to-memory DMA or BDMA or MDMA configuration, the initialization code is generated for both cores.

OpenAMP issue when compiling under EWARM and MDK-ARM when OpenAMP is activated under STM32CubeMX:

To avoid link errors in OpenAMP when compiling in EWARM IDE, add the following lines to the linker files ( `.icf`):

    /* Create region for OPENAMP */
    define symbol __OPENAMP_region_start__ = 0x38000400;
    define symbol __OPENAMP_region_size__ = 0xFC00;
    export symbol __OPENAMP_region_start__;
    export symbol __OPENAMP_region_size__;

To avoid link errors in OpenAMP when compiling in MDK-ARM IDE, add the following lines to the linker files ( `.sct`):

    ; ***** Create region for OPENAMP *****
    .resource_table +0 ALIGN 4 { ; resource table
    *(.resource_table)
    }
    ; Shared Memory area used by OpenAMP
    __OpenAMP_SHMEM__ 0x38000400 EMPTY 0xFC00 {}

OpenAMP under STM32CubeIDE needs linker file update:

    /* Specify the memory areas */
    MEMORY
    {
    ...
    m_ipc_shm (RW) : ORIGIN = 0x38000400, LENGTH = 63K
    }

    /* Symbols needed for OpenAMP to enable rpmsg */
    __OPENAMP_region_start__=ORIGIN(m_ipc_shm);
    __OPENAMP_region_end__=ORIGIN(m_ipc_shm)+LENGTH(m_ipc_shm);