Hello,
We are trying to separate between safety/time critical tasks and those that not. To do that we are executing the safety/time critical tasks in the processor privileged modes (SVC, IRQ and FIQ) and the none critical tasks in User mode. This also allows us to have memory protection with the MPU, where the memory of the tasks run in privileged modes is protected from the none-safety tasks. The problem that we are having is that after switching to the User mode the IRQs and the FIQs are disabled and cannot be re-enabled in this mode. This makes the system none deterministic in the User mode and opens the possibility of hanging the safety critical tasks by none safety critical tasks. The gain of the memory protection and software criticality separation that we achieved with this software architecture is being eliminated by the loss of the system determinism. Is there any way to resolve this issue in the user mode?
Thanks,
Alex