Process isolation on the nRF52

Hello,

I am looking at using the nRF52832 for a safety-related purpose and therefore want to isolate the safety-related code away from the Bluetooth stack. The main concern is accidental threats such as buffer overruns, stack overflows, etc. that might corrupt critical data. I'm therefore looking for features that would allow the application to prevent or detect access to safety-related memory or peripherals by the stack.

What is the best I can achieve with the nRF52 series (either SoftDevice or Zephyr)? I'm aware that there is a "memory watch unit" (MWU) provided by the nRF52 and also a "memory protection unit" (MPU) provided by ARM M4. However, from this related question I understand the MWU cannot be used by the application with the SoftDevice:

Memory Watch Unit : Who implements MWU_IRQHandler? - Nordic Q&A - Nordic DevZone - Nordic DevZone (nordicsemi.com)

Is the same true of MPU? How does the situation change if I'm using Zephyr? Are there any other features I should be aware of that would allow me to effectively isolate my code from the stack?

Thanks,

Carl

Related