How to control the Non-Secure MPU exclusively inside the Secure world in the Cortex M33?


I am currently working on a project where I need the NonSecure MPU (NS-MPU) to be exclusively controllable by the Secure World. I know it is possible to control the NS-MPU inside the Secure World using an alias address. At the same time, Is there a way to block the Non-Secure World from accessing the NS-MPU controllers?

  • Hi, check from your UC documentation if you have some registers to limit access to MPU_CTRL and other in those cases:

    - Unprivileged: In this case, just put your NS application in unprivileged mode
    - In secure mode to lock write access: for example on STM32U5 family you can configure LOCKNSMPU to disable Non-Secure MPU registers access