Understanding the programming of Mpu in ARM [ M3 ]

605 Views Asked by At

I am trying to understand how it exactly works with the alias registers of the Mpu.

So here are my understandings:

A.
For each region there are separate RBAR and RASR registers. So, for 8 regions there are total 16 of those registers physically in the hardware, but are not visible to the user i.e. they are not present on the bus for user accesses.

This is a line from the ARMv7.
The MPU Region Number Register selects the associated region registers

So, when I write to any of the Region Base Register which are available to the user on the sfr bus [ RBAR, RBAR_A1, RBAR_A2 or RBAR_A3], then internally the hardware first checks which region is selected and based on the region number selected, it writes to the internal Registers of the selected region the value written to any of the [ RBAR, RBAR_A1, RBAR_A2 or RBAR_A3].

Is the above understanding correct ?

B.
Also, on the alias registers, When any of the above registers are written by user all of them have the same value, For ex: Say I write RBAR_A1 = 0x40000013 and then after this I read RBAR register then I get back 0x40000013 and the same for RBAR_A2, RBAR_A3 as well.

Is the above one also correct ?

Please let me know if my understanding on how it works with MPU registers correct.

0

There are 0 best solutions below