English
Language : 

AT91RM3400 Datasheet, PDF (84/461 Pages) ATMEL Corporation – ARM7TDMI™ based Microcontroller
Misalignment Detector
There is no priority in the protection of the memory spaces. In case of overlap between
several memory spaces, the strongest protection is taken into account. If an access is
performed to an address which is not contained in any of the 16 memory spaces, the
Memory Protection Unit generates an abort. To prevent this, the user can define a mem-
ory space of 4M bytes starting at 0 and authorizing any access.
The Memory Controller features a Misalignment Detector that checks the consistency of
the accesses.
For each access, regardless of the master, the size of the access and the bits 0 and 1 of
the address bus are checked. If the type of access is a word (32-bit) and the bits 0 and 1
are not 0, or if the type of the access is a half-word (16-bit) and the bit 0 is not 0, an
abort is returned to the master and the access is cancelled. Note that the accesses of
the ARM processor when it is fetching instructions are not checked.
The misalignments are generally due to software bugs leading to wrong pointer han-
dling. These bugs are particularly difficult to detect in the debug phase.
As the requested address is saved in the Abort Status Register and the address of the
instruction generating the misalignment is saved in the Abort Link Register of the pro-
cessor, detection and fix of this kind of software bugs is simplified.
84 AT91RM3400
1790A–ATARM–11/03