Programmer’s Model
ARM DDI 0337G
Copyright © 2005-2008 ARM Limited. All rights reserved.
2-11
Unrestricted Access
Non-Confidential
2.5
Memory formats
The processor views memory as a linear collection of bytes numbered in ascending
order from 0. For example:
•
bytes 0-3 hold the first stored word
•
bytes 4-7 hold the second stored word.
The processor can access data words in memory in little-endian format or big-endian
format. It always accesses code in little-endian format.
Note
Little-endian is the default memory format for ARM processors.
In little-endian format, the byte with the lowest address in a word is the least-significant
byte of the word. The byte with the highest address in a word is the most significant.
The byte at address 0 of the memory system connects to data lines 7-0.
In big-endian format, the byte with the lowest address in a word is the most significant
byte of the word. The byte with the highest address in a word is the least significant. The
byte at address 0 of the memory system connects to data lines 31-24.
Figure 2-5 on page 2-12 shows the difference between little-endian and big-endian
memory formats.
The processor contains a configuration pin,
BIGEND
, that enables you to select either
the little-endian or BE-8 big-endian format. This configuration pin is sampled on reset.
You cannot change endianness when out of reset.
Note
•
Accesses to
System Control Space
(SCS) are always little endian.
•
Attempts to change endianness while not in reset are ignored.
•
Private Peripheral Bus
(PPB) space is little-endian, irrespective of the setting of
BIGEND
.