I’m looking for advice.
I’m on a Cortex M33 with MPU support enabled in FreeRTOS. Therefore my regular unprivileged threads are limited to certain pre-prescribed memory regions.
My project has an additional OS interface layer for interfacing with FreeRTOS for software re-distributality and convenience reasons.
In certain controlled circumstances I wish for my unprivileged threads to intentionally break the MPU boundaries. The prime example is to print debug messages to the console. I don’t want to use one of my precious 3 configurable memory regions for this, and I’m trying to avoid some convoluted messaging system for a bit of debug.
Previously (kernel v10.3.1) I was able to call xPortRaisePrivilege() and vPortResetPrivilege() from my OS interface layer; outside the FreeRTOS kernel, but inside “my” kernel.
I have recently updated FreeRTOS to v10.4.6 and I note that xPortRaisePrivilege() and vPortResetPrivilege() have been relocated to prevent my misuse of these functions.
I get it, but now I’m left wondering: What is the best/most-canonical way to call xPortRaisePrivilege() from my outside the FreeRTOS kernel, or otherwise print debug from my unprivileged threads?