We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Greetings,
I am beginning a project with STM32H7xx dual core MCPU, with both an M7 and M4 core. I generated the project with CubeMX, and opened it with ARM MDK.
Upon running the programming (it defaults to M7 core) I cannot proceed because the code is stuck at this point:
/* Wait until CPU2 boots and enters in stop mode or timeout*/ timeout = 0xFFFF; while((__HAL_RCC_GET_FLAG(RCC_FLAG_D2CKRDY) != RESET) && (timeout-- > 0)); if ( timeout < 0 ) { Error_Handler(); }
After doing a little digging I learned that in order for the CM4 core to boot I need to:
* Set BOOT_CM4 in the option bytes
* Flash code to the CM4
* Make sure the CM4 boot address is set to where I flashed it
I'm not sure how to do these things with ARM MDK (specifically making sure it's flashed)
With the latest STM32H7xx_DFP v3.0.0, the correct setup in uVision using STM32CubeMX for dual core STM32H7xx devices is described in the local documentation located in your STM32H7xx_DFP v3.0.0 pack installation folder, such as file:///C:/Keil_pack/ARM/PACK/Keil/STM32H7xx_DFP/3.0.0/MDK/CubeMX/Documentation/cubemx_using.html