cancel
Showing results for 
Search instead for 
Did you mean: 

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

RahulPatel
Associate

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

0 REPLIES 0