memory mapping framebuffer in the bootloader causing a memory fault when switching to unpriveleged mode
Need to memory map the framebuffer in the bootloader, this is done using bspMpuConfig. when this is done the framebuffer can successfully be written but when transitioning into the next state the routine
/* RCC access done to identify the wakeup sources, we can switch to unpriviledged */
SFU_MPU_EnterUnprivilegedMode();
causes a memory fault. Below are the memory mapping params. Any thoughts?
/* Setup Memory Mapped LCD in Write-through (framebuffer) */
MPU_InitStruct.Enable = MPU_REGION_ENABLE;
MPU_InitStruct.BaseAddress = 0x64000000;
MPU_InitStruct.Size = MPU_REGION_SIZE_32MB;
MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;
MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
MPU_InitStruct.Number = MPU_REGION_NUMBER2;
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
MPU_InitStruct.SubRegionDisable = 0x00;
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_DISABLE;
HAL_MPU_ConfigRegion(&MPU_InitStruct);
I have noticed that in app_sfu.h
SFU_MPU_PROTECT_ENABLE
is not defined, I have enabled this, I believe this allows memory mapping in the bootloader, but defining that did not have any impact. I also noticed this issue about lazy stacking, this also did not have any impact either.
