The Cortex-M4 Processor
ARM DUI 0553A
Copyright © 2010 ARM. All rights reserved.
2-17
ID121610
Non-Confidential
•
Bit_number
is the bit position, 0-7, of the targeted bit.
shows examples of bit-band mapping between the SRAM bit-band alias region and
the SRAM bit-band region:
•
the alias word at
0x23FFFFE0
maps to bit[0] of the bit-band byte at
0x200FFFFF
:
0x23FFFFE0
=
0x22000000
+ (
0xFFFFF
*32) + (0*4)
•
the alias word at
0x23FFFFFC
maps to bit[7] of the bit-band byte at
0x200FFFFF
:
0x23FFFFFC
=
0x22000000
+ (
0xFFFFF
*32) + (7*4)
•
the alias word at
0x22000000
maps to bit[0] of the bit-band byte at
0x20000000
:
0x22000000
=
0x22000000
+ (0*32) + (0 *4)
•
the alias word at
0x2200001C
maps to bit[7] of the bit-band byte at
0x20000000
:
0x2200001C
=
0x22000000
+ (0*32) + (7*4).
Figure 2-1 Bit-band mapping
Directly accessing an alias region
Writing to a word in the alias region updates a single bit in the bit-band region.
Bit[0] of the value written to a word in the alias region determines the value written to the
targeted bit in the bit-band region. Writing a value with bit[0] set to 1 writes a 1 to the bit-band
bit, and writing a value with bit[0] set to 0 writes a 0 to the bit-band bit.
Bits[31:1] of the alias word have no effect on the bit-band bit. Writing
0x01
has the same effect
as writing
0xFF
. Writing
0x00
has the same effect as writing
0x0E
.
Reading a word in the alias region:
•
0x00000000
indicates that the targeted bit in the bit-band region is set to zero
•
0x00000001
indicates that the targeted bit in the bit-band region is set to 1
Directly accessing a bit-band region
describes the behavior of direct byte, halfword, or
word accesses to the bit-band regions.
0x23FFFFE4
0x22000004
0x23FFFFE0
0x23FFFFE8
0x23FFFFEC
0x23FFFFF0
0x23FFFFF4
0x23FFFFF8
0x23FFFFFC
0x22000000
0x22000014
0x22000018
0x2200001C
0x22000008
0x22000010
0x2200000C
32MB alias region
0
7
0
0
7
0x20000000
0x20000001
0x20000002
0x20000003
6
5
4
3
2
1
0
7
6
5
4
3
2
1
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0x200FFFFC
0x200FFFFD
0x200FFFFE
0x200FFFFF
1MB SRAM bit-band region