I am using FreeRTOS V10.5.1 with MPU option on STM32F4.
I’m facing the issue that when I want to do an internal flash (flash ROM during runtime) the software runs into Hard fault handler.
When creating the task that does the flashing, I set the
portPRIVILEGE_BIT and configured the flash region as
xRegions of the task.
According to https://www.freertos.org/MPU_Chapter.pdf page 191 the user defined regions have the highest number and priority.
In fact when checking
portmacro.h I see the configurable regions are defined with numbers 0 to 2.
So I have to change the configurtation for
portUNPRIVILEGED_FLASH_REGION which has a higher number. Now flash is possible.
Is there a reason why there is a difference between docu (of LCP17xx) and port settings for ARM_CM4_MPU? Is it by update of FreeRTOS version or controller specific?
In my eyes it does not make so much sense if the user region setting are less powerful then default setting?!