05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

The MPU fault checking sequence<br />

Figure B4-2 shows the MPU fault checking sequence, when the MPU is enabled.<br />

Memory address<br />

Alignment<br />

check?<br />

No<br />

B4.4.2 External aborts<br />

Yes<br />

Check address is in a<br />

defined memory region<br />

Address<br />

in a region<br />

?<br />

Yes<br />

No<br />

Check access permissions<br />

Valid<br />

permissions<br />

?<br />

Yes<br />

Access memory<br />

Check address alignment<br />

No<br />

Permission<br />

No No<br />

fault<br />

Protected Memory System <strong>Architecture</strong> (PMSA)<br />

Does the access require<br />

an alignment check?<br />

Misaligned<br />

?<br />

Background<br />

region<br />

?<br />

Yes<br />

Privileged<br />

access<br />

?<br />

Execution<br />

permitted<br />

?<br />

Alignment<br />

fault<br />

Is use of default memory map as<br />

a Background region enabled?<br />

Figure B4-2 MPU fault checking sequence<br />

External memory errors are defined as errors that occur in the memory system other than those that are<br />

detected by the MPU or Debug hardware. They include parity errors detected by the caches or other parts<br />

of the memory system. An external abort is one of:<br />

synchronous<br />

precise asynchronous<br />

imprecise asynchronous.<br />

<strong>ARM</strong> DDI 0406B Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. B4-15<br />

Yes<br />

Yes<br />

Yes<br />

No<br />

No<br />

Background<br />

fault<br />

Is access to an XN area in<br />

the Background region?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!