cancel
Showing results for 
Search instead for 
Did you mean: 

Issues in SBSFU usage with MPU for a FreeRTOS based User Application - STM32H7

Sreedhar
Associate II

Hello all,

I am working on the STM32H753 Evaluation board and I have a software architecture with an SBSFU running in the internal flash, that jumps to the External NOR flash to execute the user application (Download and Active slot in External NOR flash). My user application is FreeRTOS based.

I am currently working on SBSFU v2.6.1 and have managed to customize the Nucleo H753's example project and my user application to execute successfully from the external NOR flash on my STM32H753 Evaluation board. But, in the process, I had to disable the Memory Protection Unit (MPU) in the SBSFU side due to the following couple of problems:

  1. Enabling the MPU causes the user application to hang at the RTOS thread creation and not proceed further. I see that this is not supported at the IOC level also
    1. 0693W00000aJB1lQAG.jpg
  2. The Data Cache being enabled in the SBSFU side was corrupting the External NOR flash for some reason, causing the signature of the firmware to mismatch and causes critical error

Also, I see in FreeRTOS website that there is some additional support to enable MPU with FreeRTOS and it does not look straight forward for the H7 microcontroller family.

I have to use an RTOS in my user application. Is there any way at all to circumvent the above mentioned problems or should I run without the Memory Protection Unit (which ST does not recommend)? Thanks a lot in advance. 😳

1 ACCEPTED SOLUTION

Accepted Solutions
Sreedhar
Associate II

Update: The Data Cache issue was temporarily resolved by defining the External NOR Flash region as Non-Cacheable in the MPU regions setting.

View solution in original post

1 REPLY 1
Sreedhar
Associate II

Update: The Data Cache issue was temporarily resolved by defining the External NOR Flash region as Non-Cacheable in the MPU regions setting.