2025-01-18 01:38 AM
Hello.
I have designed my own STM32H747IGT6 board.
And I created a simple project with STM32CubeIDE to confirm its operation.
In this project, CM7 is a program that simply blinks the LED in a while loop. (CM4 is just code generation)
while (1)
{
HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_9);
HAL_Delay(200);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
However, when I debug the M7, the code stops at this point and I can't continue.
/* 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();
}
This is obviously happening because CM4 is not running.
So I checked this link and changed the run configuration and debug configuration for CM7 and CM4, but it still stuck at the same point.
Also, after reading AN5286, I checked the addresses of CM7 and CM4 in STM32CubeProgrammer, but they were the same as the default addresses mentioned in the AN, so I did not change the addresses.
I don't know if this is a hardware or software issue.
Because it was my first time designing a board using this microcontroller.