On SBSFU, Secure Engine's SE_CORE_Startup() function pointer question.
Hello all.
I'm trying understand SBSFU source code. At this time, I meet very confuse code.
Middlewares/ST/STM32_Secure_Engine/Core/se_interface_bootloader.c
In the SE_Startup() function, there is function pointer casting code as below:
SE_StartupPtr = (SE_ErrorStatus(*)(void))((uint32_t) SE_STARTUP_REGION_ROM_START + 1U);SE_STARTUP_REGION_ROM_START point to SE_CORE_Startup() function.
What I want know is why pointer address is "SE_STARTUP_REGION_ROM_START + 1U" rather than "SE_STARTUP_REGION_ROM_START".
Even worse, "SE_STARTUP_REGION_ROM_START + 1U" is not pointer align.
What do I miss understood about this code?
Thanks.
