2. Memory and bus architecture

2.1 System architecture

The device architecture relies on an Arm ® Cortex ® -M33 core optimized for execution, thanks to an instruction cache with a direct access to the embedded flash memory.

The architecture features a 32-bit multilayer AHB bus matrix interconnecting masters and slaves:

The bus matrix provides access from a master to a slave, enabling concurrent access and efficient operation even when several high-speed peripherals work simultaneously. The architecture is shown in Figure 1 .

Figure 1. System architecture

Figure 1. System architecture diagram showing the internal bus structure of an Arm Cortex-M33 CPU. The diagram includes a CPU (Arm Cortex-M33) with C-bus and S-bus, an ICACHE, a GPDMA1 with port 0 and port 1, a Bus matrix, a CFI arbiter, Flash memory, SRAM1, SRAM2, AHB1, AHB2, AHB4, and AHB5. A legend indicates: fast bus multiplexer (circle), master interface (m), and slave interface (s).

The diagram illustrates the system architecture of the Arm Cortex-M33 CPU. At the top left, the CPU (Arm Cortex-M33) is shown with its C-bus and S-bus. The C-bus connects to the ICACHE, which in turn connects to the Bus matrix via a slave interface (s). The S-bus connects directly to the Bus matrix via a slave interface (s). The GPDMA1 is shown with port 0 and port 1, both connecting to the Bus matrix via slave interfaces (s). The Bus matrix is a central component that connects to various memory and peripheral blocks. On the right side, the Bus matrix connects to the CFI arbiter, Flash memory, SRAM1, SRAM2, AHB1, AHB2, AHB4, and AHB5. The connections are marked with 'm' for master interface and 's' for slave interface. A legend in the top right corner defines the symbols: a circle for a fast bus multiplexer, 'm' for a master interface, and 's' for a slave interface. The diagram is labeled MS55669V2 in the bottom right corner.

Figure 1. System architecture diagram showing the internal bus structure of an Arm Cortex-M33 CPU. The diagram includes a CPU (Arm Cortex-M33) with C-bus and S-bus, an ICACHE, a GPDMA1 with port 0 and port 1, a Bus matrix, a CFI arbiter, Flash memory, SRAM1, SRAM2, AHB1, AHB2, AHB4, and AHB5. A legend indicates: fast bus multiplexer (circle), master interface (m), and slave interface (s).

2.1.1 CPU C-bus

This bus connects the C-bus of the CPU to the internal flash memory and to the bus matrix via the instruction cache. This bus is used for instruction fetch and data access to the internal memories mapped in code region. This bus targets the internal flash memory and the internal SRAM (SRAM1 and SRAM2) via the ICACHE address remap function.

2.1.2 CPU S-bus

This bus connects the system bus of the CPU to the bus matrix, and it is used by the core to access data located in a peripheral or SRAM area. This bus targets the internal SRAM (SRAM1 and SRAM2), the AHB1 peripherals including the APB1 and APB2 peripherals, AHB2, AHB4 peripherals including the APB7, and AHB5 peripherals.

2.1.3 GPDMA1-bus

The buses connect the two AHB master interfaces of the GPDMA1 to the bus matrix. This targets the internal flash memory, the internal SRAMs (SRAM1, SRAM2), the AHB1 peripherals including the APB1 and APB2 peripherals, the AHB2 peripherals, AHB4 peripherals including the APB7, and AHB5 peripherals.

2.1.4 Bus matrix

The bus matrix manages the access arbitration (based on fixed priority) between masters, and features a bus multiplexer used to connect each master to a given slave without latency.

Table 1. Bus matrix access arbitration

MasterPriority
CPU core S-bus1 (highest)
ICACHE slow port2
GPDMA1 port 03
GPDMA1 port 14 (lowest)

2.1.5 AHB/APB bridges

The three bridges (AHB1 to APB1, AHB1 to APB2, and AHB4 to APB7) provide full synchronous connections between the AHB and the APB buses, resulting in flexible selection of the peripheral frequency.

Refer to Section 2.3.2: Memory map and register boundary addresses for the address mapping of the peripherals connected to these bridges.

After each device reset, the clock of peripherals having an xxEN bit in the RCC is disabled. Before using a peripheral, its clock must be enabled in the RCC_AHBxENR and RCC_APBxENR registers.

Note: When a 16- or 8-bit access is performed on an APB register, the access is transformed into a 32-bit access: the bridge duplicates the 16- or 8-bit data to feed the 32-bit vector.

AHB5 is a semisynchronous bus, connected through a bridge to the bus matrix.

2.2 TrustZone ® security architecture (a)

The security architecture is based on Arm ® TrustZone with the Armv8-M mainline extension.

The TZEN option bit in the FLASH_OPTR register activates TrustZone security.

When the TrustZone is enabled, the SAU (security-attribution unit) and IDAU (implementation-defined-attribution unit) defines the access permissions based on secure and nonsecure states.

a. Available only on STM32WBA52/4/5xx devices.

Based on IDAU security attribution, the flash memory, system SRAMs and peripherals memory space are aliased twice for secure and nonsecure states. However, the external memories space is not aliased.

Table 2 shows a typical example of eight SAU regions mapping, based on IDAU regions. The user can split and choose the secure, nonsecure or NSC regions for external memories according to application needs.

Table 2. Memory map security attribution example vs. SAU configuration regions (1)

Region descriptionAddress rangeIDAU security attributionSAU security attribution typical configurationFinal security attribution
Reserved0x0000 0000 to 0x07FF FFFFNonsecureSecure, nonsecure or NSC
Code
Flash and SRAM
0x0800 0000 to 0x0BFF FFFFNonsecureNonsecure
0x0C00 0000 to 0x0FFF FFFFNSCSecure or NSC
Reserved0x1000 0000 to 0x17FF FFFFNonsecure
0x1800 0000 to 0x1FFF FFFF
SRAM0x2000 0000 to 0x2FFF FFFFNonsecure
0x3000 0000 to 0x3FFF FFFF
Peripherals0x4000 0000 to 0x4FFF FFFFNonsecureNonsecure
0x5000 0000 to 0x5FFF FFFFNSCSecure or NSC
Reserved0x6000 0000 to 0xDFFF FFFFNonsecureSecure, nonsecure or NSC

1. NSC = nonsecure callable

2.2.1 Default TrustZone security state

When the TrustZone security is activated by the TZEN option bit in the FLASH_OPTR, the default system security state is detailed below:

2.2.2 TrustZone peripheral classification

When the TrustZone security is active, a peripheral can be either securable or TrustZone-aware type as follows:

Refer to Section 5: Global TrustZone controller (GTZC) for more details.

Table 3 and Table 4 list the securable and TrustZone-aware peripherals within the system.

Table 3. Securable peripherals by TZSC

BusPeripheral
AHB52.4 GHz RADIO + SEQRAM
PTACONV (1)
AHB4ADC4

Table 3. Securable peripherals by TZSC (continued)

BusPeripheral
AHB2SAES
PKA
RNG
HASH
AES
AHB1ICACHE registers
TSC
CRC
RAMCFG
APB7LPTIM1
I2C3
COMP (1)
LPUART1
SPI3
APB2TIM17
TIM16
SAI1 (1)
USART1
SPI1
TIM1
APB1LPTIM2
I2C1
USART2
IWDG
WWDG
TIM3
TIM2

1. Available only on STM32WBA54/55xx devices.

Table 4. TrustZone-aware peripherals

BusPeripheral
AHB4EXTI
RCC
PWR

Table 4. TrustZone-aware peripherals (continued)

BusPeripheral
AHB2HSEM
GPIOH
GPIOC
GPIOB
GPIOA
AHB1GTZC-MCPBB6
GTZC-MCPBB2
GTZC-MCPBB1
GTZC-TZSC
GTZC-TZIC
FLASH interface
GPDMA1
APB7TAMP
RTC
SYSCFG

2.3 Memory organization

2.3.1 Introduction

Program memory, data memory, registers and I/O ports are organized within the same linear 4-Gbyte address space.

The bytes are coded in memory in Little Endian format. The lowest numbered byte in a word is considered the word's least significant byte and the highest numbered byte the most significant.

The addressable memory space is divided into eight main blocks, of 512 Mbytes each.

2.3.2 Memory map and register boundary addresses

Figure 2. Memory map

Memory map diagram for STM32WBA52/54/55xG devices showing address ranges and security attributes for various memory regions and peripherals.

Legend:

Address RangeMemory Region / PeripheralSecurity Attribute
0x0000 0000 - 0x00F0 0000CODE non-secureNS
0x00F0 0000 - 0x00F0 0000CODE non-secure callableS
0x00F0 0000 - 0x0100 0000CODE non-secureNS
0x0100 0000 - 0x0200 0000SRAM non-secureNS
0x0200 0000 - 0x0400 0000SRAM non-secure callableS
0x0400 0000 - 0x4000 0000Peripheral non-secureNS
0x4000 0000 - 0x5000 0000Reserved
0x5000 0000 - 0x6000 0000Peripherals non-secure callableS
0x6000 0000 - 0xE000 0000Reserved
0xE000 0000 - 0xFFFF FFFFCPU internal peripherals

Address RangeMemory Region / PeripheralSecurity Attribute
0x0000 0000 - 0x0800 0000Reserved
0x0800 0000 - 0x0810 0000Flash-NSNS
0x0810 0000 - 0x0BF8 0000Reserved
0x0BF8 0000 - 0x0BF8 0000System Flash- NSNS
0x0BF8 0000 - 0x0C00 0000Reserved
0x0C00 0000 - 0x0C10 0000Flash-SS
0x0C10 0000 - 0x0FF8 0000Reserved
0x0FF8 0000 - 0x0FF8 0000System Flash- SS
0x0FF8 0000 - 0x1000 0000Reserved
0x1000 0000 - 0x2000 0000SRAM1-NSNS
0x2000 0000 - 0x2001 0000SRAM2-NSNS
0x2001 0000 - 0x2002 0000SRAM2-SS
0x2002 0000 - 0x3000 0000Reserved
0x3000 0000 - 0x3000 0000SRAM1-SS
0x3000 0000 - 0x3001 0000SRAM2-SS
0x3001 0000 - 0x3002 0000Reserved
0x3002 0000 - 0x3FFF FFFFReserved

Address RangeMemory Region / PeripheralSecurity Attribute
0x4000 0000 - 0x4001 0000APB1-NSNS
0x4001 0000 - 0x4002 0000APB2-NSNS
0x4002 0000 - 0x4200 0000Reserved
0x4200 0000 - 0x4202 0000AHB1-NSNS
0x4202 0000 - 0x4400 0000Reserved
0x4400 0000 - 0x4600 0000APB7-NSNS
0x4600 0000 - 0x4601 0000Reserved
0x4601 0000 - 0x4800 0000Reserved
0x4800 0000 - 0x4802 0000AHB4-NSNS
0x4802 0000 - 0x4A00 0000Reserved
0x4A00 0000 - 0x5000 0000Reserved
0x5000 0000 - 0x5001 0000APB1-SS
0x5001 0000 - 0x5002 0000APB2-SS
0x5002 0000 - 0x5200 0000Reserved
0x5200 0000 - 0x5202 0000AHB1-SS
0x5202 0000 - 0x5400 0000Reserved
0x5400 0000 - 0x5600 0000APB7-SS
0x5600 0000 - 0x5601 0000Reserved
0x5601 0000 - 0x5800 0000Reserved
0x5800 0000 - 0x5802 0000Reserved
0x5802 0000 - 0x59FF FFFFReserved
Memory map diagram for STM32WBA52/54/55xG devices showing address ranges and security attributes for various memory regions and peripherals.

STM32WBA52/54/55xG devices contain a 1-Mbyte flash memory from address offset 0x00 0000 to 0x0F FFFF, and SRAM1 64-Kbyte from address offset 0x0 0000 to 0x0 FFFF. (continuous SRAM space with SRAM2).

STM32WBA52/54/55xE devices contain a 512-Kbyte flash memory from address offset 0x00 0000 to 0x07 FFFF, and SRAM1 32-Kbyte from address offset 0x0 0000 to 0x0 7FFF (non-continuous SRAM space with SRAM2).

STM32WBA50xG devices contain a 1-Mbyte flash memory from address offset 0x00 000 to 0x0F FFFF, SRAM1 16-Kbyte from address offset 0x0 0000 to 0x0 3FFF (non-continuous SRAM space with SRAM2), and SRAM2 48-Kbyte from address offset 0x1 0000 to 0x1 BFFF.

Any memory area not allocated to on-chip memories and peripherals is considered “Reserved”.

Table 5 gives the boundary addresses of the peripherals available in the device.

Table 5. Memory map and peripheral register boundary addresses

BusNonsecure callable boundary address (1)Nonsecure boundary address (1)Size (bytes)PeripheralPeripheral register map
-0x5A00 0000 - 0xDFFF FFFF0x4A00 0000 - 0x4FFF FFFF-Reserved-
AHB50x5803 8400 - 0x59FF FFFF0x4803 8400 - 0x49FF FFFF-Reserved-
0x5803 8000 - 0x5803 83FF0x4803 8000 - 0x4803 83FF1 KPTACONV (2)Section 10.5.4 on page 272
0x5802 C000 - 0x5803 7FFF0x4802 C000 - 0x4803 7FFF-Reserved-
0x5802 8000 - 0x5802 BFFF0x4802 8000 - 0x4802 BFFF16 KRXTXRAMSection 6.6.11 on page 175
0x5802 1200 - 0x5802 7FFF0x4802 1200 - 0x4802 7FFF-Reserved-
0x5802 1000 - 0x5802 11FF0x4802 1000 - 0x4802 11FF0.5 KSEQRAMSection 6.6.11 on page 175
0x5802 0000 - 0x5802 0FFF0x4802 0000 - 0x4802 0FFF4 K2.4 GHz RADIO-
0x5800 0000 - 0x5801 FFFF0x4800 0000 - 0x4801 FFFF-Reserved-
AHB40x5602 2400 - 0x57FF FFFF0x4602 2400 - 0x47FF FFFF-Reserved-
0x5602 2000 - 0x5602 23FF0x4602 2000 - 0x4602 23FF1 KEXTISection 19.6.15 on page 615
0x5602 1400 - 0x5602 1FFF0x4602 1400 - 0x4602 1FFF-Reserved-
0x5602 1000 - 0x5602 13FF0x4602 1000 - 0x4602 13FF1 KADC4Section 21.7.18 on page 684
0x5602 0C00 - 0x5602 0FFF0x4602 0C00 - 0x4602 0FFF1 KRCCSection 12.8.54 on page 429
0x5602 0800 - 0x5602 0BFF0x4602 0800 - 0x4602 0BFF1 KPWRSection 11.10.25 on page 328
0x5602 0000 - 0x5602 07FF0x4602 0000 - 0x4602 07FF-Reserved-
-0x5601 0000 - 0x5601 FFFF0x4601 0000 - 0x4601 FFFF-Reserved-

Table 5. Memory map and peripheral register boundary addresses (continued)

BusNonsecure callable boundary address (1)Nonsecure boundary address (1)Size (bytes)PeripheralPeripheral register map
APB70x5600 8000 - 0x5600 FFFF0x4600 8000 - 0x4600 FFFF-Reserved-
0x5600 7C00 - 0x5600 7FFF0x4600 7C00 - 0x4600 7FFF1 KTAMP
0x5600 7800 - 0x5600 7BFF0x4600 7800 - 0x4600 7BFF1 KRTC
0x5600 5800 - 0x5600 77FF0x4600 5800 - 0x4600 77FF-Reserved-
0x5600 5400 - 0x5600 57FF0x4600 5400 - 0x4600 57FF1 KCOMP (2)
0x5600 4800 - 0x5600 53FF0x4600 4800 - 0x4600 53FF-Reserved-
0x5600 4400 - 0x5600 47FF0x4600 4400 - 0x4600 47FF1 KLPTIM1Section 32.7.16 on page 1257
0x5600 2C00 - 0x5600 43FF0x4600 2C00 - 0x4600 43FF-Reserved-
0x5600 2800 - 0x5600 2BFF0x4600 2800 - 0x4600 2BFF1 KI2C3Section 38.9.13 on page 1449
0x5600 2400 - 0x5600 27FF0x4600 2400 - 0x4600 27FF1 KLPUART1Section 40.7.15 on page 1593
0x5600 2000 - 0x5600 23FF0x4600 2000 - 0x4600 23FF1 KSPI3Section 41.8.15 on page 1647
0x5600 0800 - 0x5600 1FFF0x4600 0800 - 0x4600 1FFF-Reserved-
0x5600 0400 - 0x5600 07FF0x4600 0400 - 0x4600 07FF1 KSYSCFGSection 15.3.12 on page 517
0x5600 0000 - 0x5600 03FF0x4600 0000 - 0x4600 03FF-Reserved-
-0x5400 0000 - 0x55FF FFFF0x4400 0000 - 0x45FF FFFF-Reserved-
AHB20x520C 4000 - 0x53FF FFFF0x420C 4000 - 0x43FF FFFF-Reserved-
0x520C 3400 - 0x520C 3FFF0x420C 3400 - 0x420C 3FFF8 KPKA continueSection 28.7.5 on page 888
0x520C 2400 - 0x520C 33FF0x420C 2400 - 0x420C 33FFPKA RAM
0x520C 2000 - 0x520C 23FF0x420C 2000 - 0x420C 23FFPKA
0x520C 1C00 - 0x520C 1FFF0x420C 1C00 - 0x420C 1FFF1 KHSEMSection 13.4.15 on page 455
0x520C 1000 - 0x520C 1BFF0x420C 1000 - 0x420C 1BFF-Reserved-
0x520C 0C00 - 0x520C 0FFF0x420C 0C00 - 0x420C 0FFF1 KSAES (3)Section 26.8.21 on page 832
0x520C 0800 - 0x520C 0BFF0x420C 0800 - 0x420C 0BFF1 KRNGSection 24.7.6 on page 732
0x520C 0400 - 0x520C 07FF0x420C 0400 - 0x420C 07FF1 KHASHSection 27.6.8 on page 854
0x520C 0000 - 0x520C 03FF0x420C 0000 - 0x420C 03FF1 KAESSection 25.8.21 on page 776
0x5202 2000 - 0x520B FFFF0x4202 2000 - 0x420B FFFF-Reserved-
0x5202 1C00 - 0x5202 1FFF0x4202 1C00 - 0x4202 1FFF1 KGPIOHSection 14.8.15 on page 502
0x5202 0C00 - 0x5202 1BFF0x4202 0C00 - 0x4202 1BFF-Reserved-
0x5202 0800 - 0x5202 0BFF0x4202 0800 - 0x4202 0BFF1 KGPIOCSection 14.8.14 on page 501
0x5202 0400 - 0x5202 07FF0x4202 0400 - 0x4202 07FF1 KGPIOBSection 14.8.13 on page 499
0x5202 0000 - 0x5202 03FF0x4202 0000 - 0x4202 03FF1 KGPIOASection 14.8.12 on page 497
-0x5200 0000 - 0x5201 FFFF0x4200 0000 - 0x4201 FFFF-Reserved-

Table 5. Memory map and peripheral register boundary addresses (continued)

BusNonsecure callable boundary address (1)Nonsecure boundary address (1)Size (bytes)PeripheralPeripheral register map
AHB10x5003 4400 - 0x51FF FFFF0x4003 4400 - 0x41FF FFFF-Reserved-
0x5003 4000 - 0x5003 43FF0x4003 4000 - 0x4003 43FF1 KGTZC_MPCBB6 (3)Section 5.8.6 on page 164
0x5003 3400 - 0x5003 3FFF0x4003 3400 - 0x4003 3FFF-Reserved-
0x5003 3000 - 0x5003 33FF0x4003 3000 - 0x4003 33FF1 KGTZC_MPCBB2 (3)Section 5.8.5 on page 163
0x5003 2C00 - 0x5003 2FFF0x4003 2C00 - 0x4003 2FFF1 KGTZC_MPCBB1 (3)
0x5003 2800 - 0x5003 2BFF0x4003 2800 - 0x4003 2BFF1 KGTZC_TZIC (3)Section 5.7.13 on page 159
0x5003 2400 - 0x5003 27FF0x4003 2400 - 0x4003 27FF1 KGTZC_TZSC (3)Section 5.6.8 on page 141
0x5003 0800 - 0x5003 23FF0x4003 0800 - 0x4003 23FF-Reserved-
0x5003 0400 - 0x5003 07FF0x4003 0400 - 0x4003 07FF1 KICACHESection 8.7.8 on page 257
0x5002 7000 - 0x5003 03FF0x4002 7000 - 0x4003 03FF-Reserved-
0x5002 6000 - 0x5002 6FFF0x4002 6000 - 0x4002 6FFF4 KRAMCFGSection 6.6.11 on page 175
0x5002 4400 - 0x5002 5FFF0x4002 4400 - 0x4002 5FFF-Reserved-
0x5002 4000 - 0x5002 43FF0x4002 4000 - 0x4002 43FF1 KTSCSection 23.6.11 on page 714
0x5002 3400 - 0x5002 3FFF0x4002 3400 - 0x4002 3FFF-Reserved-
0x5002 3000 - 0x5002 33FF0x4002 3000 - 0x4002 33FF1 KCRCSection 20.4.6 on page 623
0x5002 2400 - 0x5002 2FFF0x4002 2400 - 0x4002 2FFF-Reserved-
0x5002 2000 - 0x5002 23FF0x4002 2000 - 0x4002 23FF1 KFLASH interfaceSection 7.9.30 on page 237
0x5002 1000 - 0x5002 1FFF0x4002 1000 - 0x4002 1FFF-Reserved-
0x5002 0000 - 0x5002 0FFF0x4002 0000 - 0x4002 0FFF4 KGPDMA1Section 17.8.16 on page 589
APB20x5001 5800 - 0x5001 FFFF0x4001 5800 - 0x4001 FFFF-Reserved-
0x5001 5400 - 0x5001 57FF0x4001 5400 - 0x4001 57FF1 KSAI1 (2)
0x5001 4C00 - 0x5001 53FF0x4001 4C00 - 0x4001 53FF-Reserved-
0x5001 4800 - 0x5001 4BFF0x4001 4800 - 0x4001 4BFF1 KTIM17 (3)Section 31.6.22 on page 1211
0x5001 4400 - 0x5001 47FF0x4001 4400 - 0x4001 47FF1 KTIM16Section 31.6.22 on page 1211
0x5001 3C00 - 0x5001 43FF0x4001 3C00 - 0x4001 43FF-Reserved-
0x5001 3800 - 0x5001 3BFF0x4001 3800 - 0x4001 3BFF1 KUSART1Section 39.8.17 on page 1538
0x5001 3400 - 0x5001 37FF0x4001 3400 - 0x4001 37FF-Reserved-
0x5001 3000 - 0x5001 33FF0x4001 3000 - 0x4001 33FF1 KSPI1 (3)Section 41.8.15 on page 1647
0x5001 2C00 - 0x5001 2FFF0x4001 2C00 - 0x4001 2FFF1 KTIM1Section 29.6.31 on page 1029
0x5001 0000 - 0x5001 2BFF0x4001 0000 - 0x4001 2BFF-Reserved-

Table 5. Memory map and peripheral register boundary addresses (continued)

BusNonsecure callable boundary address (1)Nonsecure boundary address (1)Size (bytes)PeripheralPeripheral register map
APB10x5000 9800 - 0x5000 FFFF0x4000 9800 - 0x4000 FFFF-Reserved-
0x5000 9400 - 0x5000 97FF0x4000 9400 - 0x4000 97FF1 KLPTIM2 (3)Section 32.7.16 on page 1257
0x5000 5800 - 0x5000 93FF0x4000 5800 - 0x4000 93FF-Reserved-
0x5000 5400 - 0x5000 57FF0x4000 5400 - 0x4000 57FF1 KI2C1 (3)Section 38.9.13 on page 1449
0x5000 4800 - 0x5000 53FF0x4000 4800 - 0x4000 53FF-Reserved-
0x5000 4400 - 0x5000 47FF0x4000 4400 - 0x4000 47FF1 KUSART2 (3)Section 39.8.17 on page 1538
0x5000 3400 - 0x5000 43FF0x4000 3400 - 0x4000 43FF-Reserved-
0x5000 3000 - 0x5000 33FF0x4000 3000 - 0x4000 33FF1 KIWDGSection 34.7.7 on page 1275
0x5000 2C00 - 0x5000 2FFF0x4000 2C00 - 0x4000 2FFF1 KWWDGSection 35.6.4 on page 1282
0x5000 0800 - 0x5000 2BFF0x4000 0800 - 0x4000 2BFF-Reserved-
0x5000 0400 - 0x5000 07FF0x4000 0400 - 0x4000 07FF1 KTIM3 (3)Section 30.5.31 on page 1145
0x5000 0000 - 0x5000 03FF0x4000 0000 - 0x4000 03FF1 KTIM2Section 30.5.31 on page 1145
AHB0x3002 0000 - 0x4FFF FFFF0x2002 0000 - 0x3FFF FFFF-Reserved-
0x3001 0000 - 0x3001 FFFF0x2001 0000 - 0x2001 FFFF64 K (4)SRAM2-
0x3000 0000 - 0x3000 FFFF0x2000 0000 - 0x2000 FFFF64 K (5)SRAM1-
0x0FF9 8000 - 0x2FFF FFFF0x0FF9 8000 - 0x1FFF FFFF-Reserved-
0x0FF9 4000 - 0x0FF9 7FFF0x0BF9 4000 - 0x0BF9 7FFF16 KFlash user optionsSection 7.9.30 on page 237
0x0FF9 0500 - 0x0FF9 3FFF0x0BF9 0500 - 0x0BF9 3FFF14.75 KDESIGSection 44.1.13 on page 1839
0x0FF9 0200 - 0x0FF9 04FF0x0BF9 0200 - 0x0BF9 04FF-Reserved-
0x0FF9 0000 - 0x0FF9 01FF0x0BF9 0000 - 0x0BF9 01FF512OTP-
0x0FF8 8000 - 0x0FF8 FFFF0x0BF8 8000 - 0x0BF8 FFFF32 KBootloader-
0x0FF8 6000 - 0x0FF8 7FFF0x0BF8 6000 - 0x0BF8 7FFF8 KRSS-Lib (3)-
0x0FF8 0000 - 0x0FF8 5FFF0x0BF8 0000 - 0x0BF8 5FFF24 KRSS-Boot (3)-
0x0C10 0000 - 0x0FF7 FFFF0x0810 0000 - 0x0BF7 FFFF-Reserved-
0x0C00 0000 - 0x0C0F FFFF0x0800 0000 - 0x080F FFFF1 M (6)User flash-
0x0000 0000 - 0x0BFF FFFF0x0000 0000 - 0x07FF FFFF-Reserved-

1. Gray shaded fields are reserved.

2. Available only on STM32WBA54/5xx devices.

3. Available only on STM32WBA52/54/55xx devices.

4. Device-dependent (STM32WBA52/54/55xx 64-Kbyte SRAM2 offset 0x1 0000 - 0x1 FFFF, STM32WBA50xG 48-Kbyte SRAM2 offset 0x1 0000 - 0x1 BFFF, where 0x1 C000 - 0x1 FFFF is reserved).

5. Device-dependent (STM32WBA52/54/55xG 64-Kbyte SRAM1 offset 0x0 0000 - 0x0 FFFF, STM32WBA52/4/5xE 32-Kbyte SRAM1 offset 0x0 0000 - 0x0 7FFF, where 0x0 8000 - 0x0 FFFF is reserved, STM32WBA50xx 16-Kbyte SRAM1 offset 0x0 0000 - 0x0 3FFF, where 0x0 4000 - 0x0 FFFF is reserved).

6. Device-dependent (STM32WBA5xxG 1-Mbyte User flash offset 0x00 0000 - 0x0F FFFF, STM32WBA5xxE 512-Kbyte user flash offset 0x00 0000 - 0x07 FFFF, where 0x08 0000 - 0x0F FFFF is reserved).

2.3.3 Embedded SRAM

The devices feature up to 128-Kbyte SRAMs:

These SRAMs can be accessed as bytes, half-words (16 bits) or full words (32 bits). These memories can be addressed both by CPU and DMA.

The CPU can access the SRAM1, and SRAM2 through the system bus or, when remapped in the I-CACHE, through the C-bus, depending on the selected address.

When TrustZone security is enabled, all SRAMs are secure after reset. The SRAM can be programmed as nonsecure with a block granularity. For more details, refer to Section 5: Global TrustZone® controller (GTZC) .

SRAM features are detailed in Section 6.3.1: Internal SRAMs features .

2.3.4 Flash memory overview

The flash memory is composed of two distinct physical areas:

The flash interface implements instruction access and data access based on the AHB protocol. It also implements the logic necessary to carry out the memory operations (program/erase) controlled through the FLASH registers, plus the security access control features. Refer to Section 7: Embedded flash memory (FLASH) for more details.