cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeIDE 1.19 generates incorrect startup.s file for STM32H7 dual core MCUs

mordent
Associate

Hi,

If I use STM32CubeIDE 1.19 to start a new project for the STM32H755 Nucleo board, the startup assembly files in both the CM7 and CM4 sub-projects are the same file with the same contents, startup_stm32h755zitx.s.  It looks like this file is the one generated for the M7 core that just gets copied over to the M4 directory, because inside it has: .cpu cortex-m7

Now, I know both cores share all the peripherals and interrupts.  But I would assume the ".cpu" definition would need to be cortex-m4 for the M4 core.  So far I haven't seen any issue, but this is probably a hidden bug.

Thanks,

-m

2 REPLIES 2
Souhaib MAZHOUD
ST Employee

Hello @mordent 

Thank you for bringing this up!

After check, there is no issue with this behavior.
In fact, there is only one common startup file for the STM32H755 that includes cortex-m7 because CM7 is the primary boot core. CM7 is the only core that boots after reset and performs the system initialization, while the CM4 is started later by the CM7 through software.

KR, Souhaib

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.

That is completely not true.  Both cores boot up with their own interrupt vectors and startup files, running their own reset handlers.  What you're actually talking about is the synchronization of the two cores after bootup that's done in software.

I know this for a fact because we have two separate startup files for the H7 in our project.  Our CM4 and CM7 use different memory initializations for certain variables in special RAM sections.  This wouldn't be possible if they used the same startup file.  We actually had to make our own copy of the startup and modify it for each core.