cancel
Showing results for 
Search instead for 
Did you mean: 

CM4 Not Responding After Jumping from CM7 Bootloader to CM7 Application (STM32H747)

RahulPatel
Associate II

Hi everyone,

I'm encountering an issue with the STM32H747 dual-core MCU during the transition from bootloader to application. Here's a summary of the setup and observed behavior:

Setup:

  • Bootloader (CM7 core): When the BCM4 option byte is enabled, the CM4 core starts as expected.
  • Application (CM7 core): After the bootloader jumps to the CM7 application, the CM4 core stops responding.

What We have Tried :

  1. Manual CM4 Enable in Application
  • Disabled CM4 in option bytes.
  • Attempted to enable CM4 manually in the CM7 application:

                 SYSCFG->UR1 = (1 << 0); // Set BCM4 = 1

                  RCC->GCR |= (1 << 3);   // Set BOOT_C2 = 1

  • Result: System hangs. Recovery requires setting BOOT pin = 1, flash erase, and reprogramming. The issue seems to be with SYSCFG->UR1 = (1 << 0)

      2. Option Byte Update via Flash APIManual CM4 Enable in Application

            HALFLASHUnlock();

           HALFLASHOBUnlock();

            HALSYSCFGEnableCM4BOOT();

            HALFLASHOBLaunch();

            HALFLASHOBLock();

           HALFLASH_Lock();

  • Register values after execution:
    • RCC_CR: 0xf07c025
    • RCC_GCR: 0x8
    • SYSCFG_UR1: 0x10001
  • Result: No change in behavior.

   3. Core Hold/Release

  • Used HAL_PWREx_HoldCore() in bootloader and HAL_PWREx_ReleaseCore() in application.
  • Result: CM4 still does not resume execution.
  1. Is it necessary to reinitialize or restart CM4 from the CM7 application, even if it was already running during the bootloader?
  2. Could the CM7 application be overwriting shared memory or stack used by CM4, causing it to crash?
  3. What is the recommended method to preserve CM4 execution across a jump from bootloader to application?
  4. Are there any known errata or limitations related to dual-core coordination during bootloader transitions on STM32H747?

Any guidance, working examples, or insights from those who’ve implemented dual-core bootloaders on STM32H747 would be greatly appreciated!

Regards,  

Rahul

2 REPLIES 2
Saket_Om
ST Employee

Hello @RahulPatel 

Please could you specify which version of bootloader you are using? 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
Saket_Om

Hi @Saket_Om,

We are not using any ST-provided bootloader. Instead, we created a new CM7 project that acts as a bootloader. It’s essentially a CM7 application whose main function is to jump to another CM7 application.

Regards, Rahul