UM0306 Memory and bus architecture
29/519
2.3.3 Bit banding
The Cortex-M3 memory map includes two bit-band regions. These regions map each word
in an alias region of memory to a bit in a bit-band region of memory. Writing to a word in the
alias region has the same effect as a read-modify-write operation on the targeted bit in the
bit-band region.
In the STM32F10x both peripheral registers and SRAM are mapped in a bit-band region.
This allows single bit-band write and read operations to be performed.
A mapping formula shows how to reference each word in the alias region to a corresponding
bit in the bit-band region. The mapping formula is:
bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4)
where:
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-31) of the targeted bit.
Example:
The following example shows how to map bit 2 of the byte located at SRAM address
0x20000300 in the alias region:
0x22006008 = 0x22000000 + (0x300*32) + (2*4).
Writing to address 0x22006008 has the same effect as a read-modify-write operation on bit
2 of the byte at SRAM address 0x20000300.
Reading address 0x22006008 returns the value (0x01 or 0x00) of bit 2 of the byte at SRAM
address 0x20000300 (0x01: bit set; 0x00: bit reset).
For more information on Bit-Banding, please refer to the Cortex-M3 Technical Reference
Manual.
2.3.4 Embedded Flash memory
The high-performance Flash memory module has the following key features:
● Density of 128 Kbytes
● Endurance: 1000 cycles
● Memory organization: the Flash memory is organized in main blocks and information
blocks:
– Main memory block of size 16K * 64 bits. Each main block is divided into 128
pages of 1Kbyte each (seeTable 2).
– Information block of size 320 * 64 bits. Each information block is divided into 2
pages or 2Kbyte and 0.5Kbyte (seeTabl e 2).
The Flash memory interface features:
● Read interface with prefetch buffer (2x64-bit words)
● Option byte Loader
● Flash Program / Erase operation
● Access / Write Protection