Skip to main content
Jvan .10
Associate III
March 15, 2021
Solved

Second core not booting up

  • March 15, 2021
  • 5 replies
  • 2280 views

The STM32 dev board I'm working with is the Nucleo H745ZI-Q.

This one has two cores, a M7 and a M4.

Now when I try to load code onto it, it runs fine the first time I run the debugger.

I noticed that when I reconnect the board, the second core doesn't boot up. I've to manually boot the second core to get it to work. This is unusable for me and probably isn't the way to go. The default CubeMX sketch gives me hardfault errors so that's not an option.

I tried adding this to the M7 code:

HAL_RCCEx_EnableBootCore(RCC_BOOT_C2);

But it didn't solve the issue.

I just want the M4 core to boot up after the M7 does. Nothing fancy, I just need to get it to work as simple as possible.

Could anyone help me?

This topic has been closed for replies.
Best answer by Jvan .10

I finally fixed it:

.cm4_code :
 {
 _cm4_code_start = .;
 KEEP(*(.cm4_code));
 _cm4_code_end = .;
 } > FLASH_B2

Was missing in the FLASH file

5 replies

ST Technical Moderator
March 18, 2021

Hello @Jvan .10​ ,

I advise you to follow these resources which provide guidelines on how to debug STM32H7 dual-core applications:

  • AN5286 STM32H7x5/x7 dual-core microcontroller debugging 
  • AN5361 Getting started with projects based on dual-core STM32H7 microcontrollers in STM32CubeIDE

Please mark my answer as best by clicking on the "Select as Best" button if it helped =)

Imen

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks
Jvan .10
Jvan .10Author
Associate III
March 18, 2021

Yes I tried this aswell, multiple times, with multiple people

Jvan .10
Jvan .10Author
Associate III
March 18, 2021

The problem is not that I can't follow the guide.

Because when I use the debugger and start both cores manually it works fine.

When I reset the board or replug it, the M4 just won't boot automatically.

Jvan .10
Jvan .10AuthorBest answer
Associate III
March 18, 2021

I finally fixed it:

.cm4_code :
 {
 _cm4_code_start = .;
 KEEP(*(.cm4_code));
 _cm4_code_end = .;
 } > FLASH_B2

Was missing in the FLASH file

ST Technical Moderator
March 18, 2021

 Good to see that your have solved your issue :) and thanks for your update.

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks