Cortex-M4 privileged mode

Hi guys, I’m going to develop an application running under Cortex-M4F processor (STM32F4xx) and FreeRTOS with – most likely – NO MPU support. My question is the following: The application tasks that are created using FreeRTOS runs in Cortex-M4 privileged mode so they can access NVIC registers or not? The application will run a time-critical ISR that will have a priority greater than configMAXSYSCALLINTERRUPTPRIORITY so it’s not maskable by kernel. An application task is in charge to enable/disable/mask this ISR and my wish is to use NVICEnableIRQ – NVIC_DisableIRQ to manage these operations. To do so it’s fundamental that software task run in privileged mode (nPRIV bit of CONTROL core register = 0) because in un-privileged mode task cannot access NVIC registers. Thanks in advance for your support.

Cortex-M4 privileged mode

Most FreeRTOS applications run without the MPU so tasks run will full privilege. You won’t have a problem.

Cortex-M4 privileged mode

Ok. Glad to know that things works in this way. Thanks a lot for your answer Mr Dave =)