MPU and queues

Hello,
I would like to ask about using MPU and queues.
Here is example (static memory allocation):
File 1: Queue + Task1 (access to MPU region1)
File 2: Task2 (access to MPU region1 and MPU region2)
I would like to use queue to send data between Task1 and Task2.
I supposed that Queue should be declared in MPU region1 because two of tasks has got access to this region. I realized that there is no need to put it there and it works. Could you pleas explain this behavior?

Restricted tasks don’t need access rights to the region that the Queue is in to get data from it, as the access to the data in the queue happens inside the kernel, which has unrestricted access. Using a Queue is actually one good way to send data in or out of a restricted task without needing to add a region to put that data in.

1 Like