cancel
Showing results for 
Search instead for 
Did you mean: 

How to boot trigger cm7 to cm4 in keil?

yolominwoo
Associate III

I'm implement IAP in Nucleo-H745ziq.

So. when i into application then cm7 trigger(boot) to cm4.

cm4 can't boot in keil but in stm32CubeIDE can boot.

 

SET_BIT(RCC->GCR, RCC_GCR_BOOT_C2);

yolominwoo_0-1715233361339.png

 

7 REPLIES 7
Imen.D
ST Employee

Hello @yolominwoo,

You need to include code in the CM7 project that enables the booting of the CM4 core using the HAL_RCCEx_EnableBootCore() function from the STM32H7 HAL library.
Ensure the right memory area is selected for the CM7 core, such as Flash at 0x08000000 for Boot address 0.
Build the CM7 project and load the binary onto the target device.

You need to configure the CM4 Project and ensure the memory area and startup code are appropriate for the CM4 core. Then, Build the CM4 project and load the binary onto the target device.
Load both CM7 and CM4 projects in Keil and start the debug session for each core. You should start the CM7 project first, which will then enable the booting of the CM4 core through the code you added. Then, start the CM4 project.
For more details and step-by-step guide, you can refer to the application notes and examples provided:

  • AN5286: STM32H7x5/x7 dual-core microcontroller debugging (Using MDK-ARM section)
  • AN5557: STM32H745/755 and STM32H747/757 lines dual-core architecture" (especially the section 3 Resources for dual-core application).

Hope this helped you

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

This doesn't work either.

I'm check already flash cm7 boot addres


HAL_RCCEx_EnableBootCore(RCC_BOOT_C2);

 

STM32CubeIDE Application Projcet it work cm4

But keil Application Project can't boot cm4

Please provide more details (your configuration, Cube and tools version used) and list the steps you did along with the errors you encountered, in order to be able to answer.

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

STM32CubeMX 6.11.1

uVision 5.38

STM32CubeIDE Last Release

I'm make a IAP for cm7 and cm4

I wish BOOT_CM4 disable. and When jump Iap to Application then Trigger for cm7 to cm4.

I'm moved stm32CubeIDE to uVision. but already can't cm4 boot.

uVision(Application CM4 main.c) Can't boot cm4

yolominwoo_0-1715240817336.png

stm32CubeIDE(Application CM4 main.c) Can boot cm4

yolominwoo_1-1715240837032.png

 

 

If HAL_RCCEx_EnableBootCore(RCC_BOOT_C2); need shared memory?

Imen.D
ST Employee

Hi @yolominwoo ,

Can you please test this ready-to-use example within Keil: 

\Repository\STM32Cube_FW_H7_V1.11.1\Projects\STM32H747I-DISCO\Applications\ResourcesManager\ResourcesManager_SharedResources

Then, please keep me informed about your update.

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

I'm tried again Today in STM32CubeIDE.

First. I'm made new Application Project.

CM7 in main.c I'm code just one line SET_BIT(RCC->GCR, RCC_GCR_BOOT_C2);

yolominwoo_0-1715311289743.png

 

But I can't boot cm4.

However, I'm tried Changed CM7 timer TIM4 from SYSTICK

Then CM4 can boot.

You know why that worked?

 

Now, My Keil application project can trig boot for cm4