OpenAMP_FreeRTOS example vs Cube Project - Why is the Cube project putting the init for IPCC and OpenAMP is the else section of the Is_Engineering_Boot_Mode() if statement?
I created a project using CUBEIDE for STM32MP157C-DK2 and set all peripherals to initialize. I enabled FreeRTOS and then started porting over the example code in in the Projects folder for the OpenAMP_FreeRTOS_echo application. It is all compiling OK but the code is not executing correctly. Comparing the application example code to the CUBEIDE project I find that the code to init the IPCC and OpenAMP in the example is :
/* Configure the system clock */
if (IS_ENGINEERING_BOOT_MODE())
{
/* Configure the system clock */
SystemClock_Config();
}
/* IPCC initialisation */
MX_IPCC_Init();
/* OpenAmp initialisation ---------------------------------*/
MX_OPENAMP_Init(RPMSG_REMOTE, NULL);
But the CUBEIDE generated code looks like this:
if(IS_ENGINEERING_BOOT_MODE())
{
/* Configure the peripherals common clocks */
PeriphCommonClock_Config();
}
else
{
/* IPCC initialisation */
MX_IPCC_Init();
/* OpenAmp initialisation ---------------------------------*/
MX_OPENAMP_Init(RPMSG_REMOTE, NULL);
}
If I understand this correctly the code inside the if (IS_ENGINEERING_BOOT_MODE()) will get run but the IPCC init will not which the project needs. This code is generated by CUBE and I cannot see how set up CUBE to generate the code correctly.
Any ideas? What am I missing?
