Firmware MPU configuration and SBSFU FPU exceptions
It seems to be a recurring challenge in the community posts of getting firmware MPU configuration to work with SBSFU. We also had the problem of application firmware hanging when running it with SBSFU. A solution of clearing floating point unit flags was found from a post here: https://community.st.com/t5/stm32-mcus-security/ethernet-init-fail-with-sbsfu-bootloader/td-p/211911/page/2:
// Clear Floating point Unit flags
{
register uint32_t fpscr_val = 0;
fpscr_val = __get_FPSCR();
fpscr_val &= (uint32_t)~0x8F; // Clear all exception flags
__set_FPSCR(fpscr_val);
}
My question is: Why are the exception flags set after running SBSFU and should I be concerned by that?
