Cortex-M3 Processor (Reference Material)
UG0331 User Guide Revision 15.0
33
The following formula shows how the alias region maps onto the bit-band region:
•
bit_word_offset = (byte_offset x 32) + (bit_number x 4)
•
bit_word_addr = bit_ban bit_word_offset
where:
•
Bit_word_offset is the position of the target bit in the bit-band memory region.
•
Bit_word_addr is the address of the word in the alias memory region that maps to the targeted bit.
•
Bit_band_base is the starting address of the alias region.
•
Byte_offset is the number of the byte in the bit-band region that contains the targeted bit.
•
Bit_number is the bit position, 0-7, of the targeted bit.
The following illustration 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 = 0x22 (0xFFFFF*32) + (0*4).
•
The alias word at 0x23FFFFFC maps to bit[7] of the bit-band byte at 0x200FFFFF:
0x23FFFFFC = 0x22 (0xFFFFF*32) + (7*4).
•
The alias word at 0x22000000 maps to bit[0] of the bit-band byte at 0x20000000:
0x22000000 = 0x22 (0*32) + (0 *4).
•
The alias word at 0x2200001C maps to bit[7] of the bit-band byte at 0x20000000:
0x2200001C = 0x2 (0*32) + (7*4).
Figure 13 •
Bit-band Mapping
3.5.2.5.1
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.
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