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 matrix and its connections to various components.

The diagram illustrates the system architecture of the STM32 microcontroller. At the top, three main components are shown: CPU Arm Cortex-M33 (with C-bus and S-bus), GPDMA1 (with port 0 and port 1), and OTG_HS. Below the CPU, the ICACHE is connected to the C-bus. The S-bus connects to a central 'Bus matrix'. The GPDMA1 ports connect to the bus matrix via slave interfaces. The bus matrix is a grid of bus multiplexers (circles). On the right side, master interfaces (labeled 'm') connect the bus matrix to the CFI arbiter, Flash, SRAM1, SRAM2, AHB1, AHB2, AHB4, and AHB5. Slave interfaces (labeled 's') are shown on the left side of the bus matrix, connecting to the ICACHE and the CPU's S-bus. A legend indicates: circle = bus multiplexer, 'm' = master interface, 's' = slave interface. The identifier MS56525V2 is in the bottom right corner.

Figure 1. System architecture diagram showing the internal bus matrix and its connections to various components.

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 USB OTG_HS-bus

The bus connects the AHB master interfaces of the USB OTG_HS to the bus matrix. This bus is used by the USB OTG_HS to load and store data in memory. This targets the internal flash memory and the internal SRAMs (SRAM1, SRAM2).

2.1.5 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
USB OTG_HS5 - lowest

2.1.6 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

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.

implementation (refer to Figure 2: Memory map ). It is then combined with the results from the SAU security attribution, and the higher security state is selected.

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 SRAM0x0800 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 FFFFNSCSecure or NSC
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. Securables peripherals by TZSC

BusPeripheral
AHB52.4 GHz RADIO + SEQRAM
PTACONV
AHB4ADC4

Table 3. Securable peripherals by TZSC (continued)

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

1. Available only on STM32WBA62/64/65xx devices

  1. 2. Available only on STM32WBA62/65xx devices
Table 4. TrustZone-aware peripherals
BusPeripheral
AHB4EXTI
RCC
PWR
AHB2HSEM
GPIOH
GPIOG (1)
GPIOE (1)
GPIO (2)
GPIOC
GPIOB
GPIOA
AHB1GTZC-MCPBB6
GTZC-MCPBB2
GTZC-MCPBB1
GTZC-TZSC
GTZC-TZIC
FLASH interface
GPDMA1
APB7TAMP
RTC
SYSCFG
  1. 1. Available only on STM32WBA62/65xx devices.
    2. Available only on STM32WBA62/64/65xx devices.

2.3 Memory organization

2.3.1 Introduction

Program memory, data memory, registers and I/O ports are organized within the same linear 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.

2.3.2 Memory map and register boundary addresses

Figure 2. Memory map

Memory map diagram for STM32WBA6xxl devices showing CPU internal peripherals, reserved memory, nonsecure callable peripherals, nonsecure SRAM, nonsecure CODE, and secure memory regions (Flash-S, System Flash-S, SRAM1-S, SRAM2-S).

Legend:

Address RangeMemory Region / AliasSecurity Status
0x0000 0000 – 0x00800 0000ReservedNS
0x00800 0000 – 0x00820 0000Flash-NSNS
0x00820 0000 – 0x00BF8 0000ReservedNS
0x00BF8 0000 – 0x00BF8 C000System Flash- NSNS
0x00BF8 C000 – 0x00C00 0000ReservedNS
0x00C00 0000 – 0x00C20 0000Flash-SS
0x00C20 0000 – 0x00FF8 0000ReservedNS
0x00FF8 0000 – 0x00FF8 C000System Flash- SS
0x00FF8 C000 – 0x01000 0000ReservedNS
0x01000 0000 – 0x02000 0000ReservedNS
0x02000 0000 – 0x02007 0000SRAM1-NSNS
0x02007 0000 – 0x02008 0000SRAM2-NSNS
0x02008 0000 – 0x03000 0000ReservedNS
0x03000 0000 – 0x03007 0000SRAM1-SS
0x03007 0000 – 0x03008 0000SRAM2-SS
0x03008 0000 – 0x03FFF FFFFReservedNS
0x04000 0000 – 0x04001 0000APB1-NSNS
0x04001 0000 – 0x04002 0000APB2-NSNS
0x04002 0000 – 0x04200 0000ReservedNS
0x04200 0000 – 0x04202 0000AHB1-NSNS
0x04202 0000 – 0x04400 0000ReservedNS
0x04400 0000 – 0x04600 0000APB7-NSNS
0x04600 0000 – 0x04601 0000ReservedNS
0x04601 0000 – 0x04602 0000AHB4-NSNS
0x04602 0000 – 0x04800 0000ReservedNS
0x04800 0000 – 0x04802 0000AHB5-NSNS
0x04802 0000 – 0x04A00 0000ReservedNS
0x04A00 0000 – 0x05000 0000APB1-SS
0x05000 0000 – 0x05001 0000APB2-SS
0x05001 0000 – 0x05002 0000ReservedNS
0x05002 0000 – 0x05200 0000ReservedNS
0x05200 0000 – 0x05202 0000ReservedNS
0x05202 0000 – 0x05400 0000ReservedNS
0x05400 0000 – 0x05600 0000ReservedNS
0x05600 0000 – 0x05601 0000APB7-SS
0x05601 0000 – 0x05602 0000ReservedNS
0x05602 0000 – 0x05800 0000ReservedNS
0x05800 0000 – 0x05802 0000ReservedNS
0x05802 0000 – 0x059FF FFFFReservedNS
0x059FF FFFF – 0x059FF FFFFAHB5-SS

Left side memory map:

Right side memory map (aliases):

Memory map diagram for STM32WBA6xxl devices showing CPU internal peripherals, reserved memory, nonsecure callable peripherals, nonsecure SRAM, nonsecure CODE, and secure memory regions (Flash-S, System Flash-S, SRAM1-S, SRAM2-S).

STM32WBA6xxl devices contain a 2-Mbyte flash memory from address offset 0x00 0000 to 0x1F FFFF, and SRAM1 448-Kbyte from address offset 0x0 0000 to 0x6 FFFF, (continuous SRAM space with SRAM2).

STM32WBA6xxG devices contain a 1-Mbyte flash memory from address offset 0x00 0000 to 0x0F FFFF, and SRAM1 192-Kbyte from address offset 0x0 0000 to 0x2 FFFF, (noncontinuous SRAM space with SRAM2).

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 KPTACONVPTACONV register map
0x5802 C000 - 0x5803 7FFF0x4802 C00 - 0x4803 7FFF-Reserved-
0x5802 8000 - 0x5802 BFFF0x4802 8000 - 0x4802 BFFF16 KRXTXRAM-
0x5802 1200 - 0x5802 7FFF0x4802 1200 - 0x4802 7FFF-Reserved-
0x5802 1000 - 0x5802 11FF0x4802 1000 - 0x4802 11FF0.5 KSEQRAM-
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 KEXTIEXTI register map
0x5602 1400 - 0x5602 1FFF0x4602 1400 - 0x4602 1FFF-Reserved-
0x5602 1000 - 0x5602 13FF0x4602 1000 - 0x4602 13FF1 KADC4ADC register map
0x5602 0C00 - 0x5602 0FFF0x4602 0C00 - 0x4602 0FFF1 KRCCRCC register map
0x5602 0800 - 0x5602 0BFF0x4602 0800 - 0x4602 0BFF1 KPWRPWR register map
0x5602 0000 - 0x5602 07FF0x4602 0000 - 0x4602 07FF-Reserved-
-0x5601 0000 - 0x5601 FFFF0x4601 0000 - 0x4601 FFFF-Reserved-
APB70x5600 8000 - 0x5600 FFFF0x4600 8000 - 0x4600 FFFF-Reserved-
0x5600 7C00 - 0x5600 7FFF0x4600 7C00 - 0x4600 7FFF1 KTAMPTAMP register map
0x5600 7800 - 0x5600 7BFF0x4600 7800 - 0x4600 7BFF1 KRTCRTC register map
0x5600 7400 - 0x5600 77FF0x4600 7400 - 0x4600 77FF1 KVREFBUF (2)VREFBUF register map
0x5600 5800 - 0x5600 73FF0x4600 5800 - 0x4600 73FF-Reserved-
0x5600 5400 - 0x5600 57FF0x4600 5400 - 0x4600 57FF1 KCOMPCOMP register map
0x5600 4800 - 0x5600 53FF0x4600 4800 - 0x4600 53FF-Reserved-
0x5600 4400 - 0x5600 47FF0x4600 4400 - 0x4600 47FF1 KLPTIM1LPTIM register map
0x5600 2C00 - 0x5600 43FF0x4600 2C00 - 0x4600 43FF-Reserved-
0x5600 2800 - 0x5600 2BFF0x4600 2800 - 0x4600 2BFF1 KI2C3I2C register map
0x5600 2400 - 0x5600 27FF0x4600 2400 - 0x4600 27FF1 KLPUART1LPUART register map

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

BusNonsecure callable boundary address (1)Nonsecure boundary address (1)Size (bytes)PeripheralPeripheral register map
APB7 (cont'd)0x5600 2000 - 0x5600 23FF0x4600 2000 - 0x4600 23FF1 KSPI3SPI register map
0x5600 0800 - 0x5600 1FFF0x4600 0800 - 0x4600 1FFF-Reserved-
0x5600 0400 - 0x5600 07FF0x4600 0400 - 0x4600 07FF1 KSYSCFGSYSCFG register map
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 continuePKA register map
0x520C 2400 - 0x520C 33FF0x420C 2400 - 0x420C 33FFPKA RAM
0x520C 2000 - 0x520C 23FF0x420C 2000 - 0x420C 23FFPKA
0x520C 1C00 - 0x520C 1FFF0x420C 1C00 - 0x420C 1FFF1 KHSEMHSEM register map
0x520C 1000 - 0x520C 1BFF0x420C 1000 - 0x420C 1BFF-Reserved-
0x520C 0C00 - 0x520C 0FFF0x420C 0C00 - 0x420C 0FFF1 KSAESSAES register map
0x520C 0800 - 0x520C 0BFF0x420C 0800 - 0x420C 0BFF1 KRNGRNG register map
0x520C 0400 - 0x520C 07FF0x420C 0400 - 0x420C 07FF1 KHASHHASH register map
0x520C 0000 - 0x520C 03FF0x420C 0000 - 0x420C 03FF1 KAESAES register map
0x5206 0000 - 0x520B FFFF0x4206 0000 - 0x420B FFFF-Reserved-
0x5204 0000 - 0x5205 FFFF0x4204 0000 - 0x4205 FFFF128 KUSB OTG (3)OTG register map
0x5202 2000 - 0x5203 FFFF0x4202 2000 - 0x4203 FFFF-Reserved-
0x5202 1C00 - 0x5202 1FFF0x4202 1C00 - 0x4202 1FFF1 KGPIOHGPIOH register map
0x5202 1800 - 0x5202 1BFF0x4202 1800 - 0x4202 1BFF1 KGPIOG (2)GPIOG register map
0x5202 1400 - 0x5202 1BFF0x4202 1400 - 0x4202 1BFF-Reserved-
0x5202 1000 - 0x5202 13FF0x4202 1000 - 0x4202 13FF1 KGPIOE (2)GPIOE register map
0x5202 0C00 - 0x5202 0FFF0x4202 0C00 - 0x4202 0FFF1 KGPIOF (3)GPIOF register map
0x5202 0800 - 0x5202 0BFF0x4202 0800 - 0x4202 0BFF1 KGPIOCGPIOC register map
0x5202 0400 - 0x5202 07FF0x4202 0400 - 0x4202 07FF1 KGPIOBGPIOA to B register map
0x5202 0000 - 0x5202 03FF0x4202 0000 - 0x4202 03FF1 KGPIOAGPIOA to B register map
-0x5200 0000 - 0x5201 FFFF0x4200 0000 - 0x4201 FFFF-Reserved-
AHB10x5003 4400 - 0x51FF FFFF0x4003 4400 - 0x41FF FFFF-Reserved-
0x5003 4000 - 0x5003 43FF0x4003 4000 - 0x4003 43FF1 KGTZC_MPCBB6GTZC1 MPCBB6 register map
0x5003 3400 - 0x5003 3FFF0x4003 3400 - 0x4003 3FFF-Reserved-
0x5003 3000 - 0x5003 33FF0x4003 3000 - 0x4003 33FF1 KGTZC_MPCBB2GTZC1 MPCBB1 and MPCBB2 register map
0x5003 2C00 - 0x5003 2FFF0x4003 2C00 - 0x4003 2FFF1 KGTZC_MPCBB1
0x5003 2800 - 0x5003 2BFF0x4003 2800 - 0x4003 2BFF1 KGTZC_TZICGTZC1 TZIC register map
0x5003 2400 - 0x5003 27FF0x4003 2400 - 0x4003 27FF1 KGTZC_TZSCGTZC1 TZSC register map

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

BusNonsecure callable boundary address (1)Nonsecure boundary address (1)Size (bytes)PeripheralPeripheral register map
AHB1 (cont'd)0x5003 0800 - 0x5003 23FF0x4003 0800 - 0x4003 23FF-Reserved-
0x5003 0400 - 0x5003 07FF0x4003 0400 - 0x4003 07FF1 KICACHEICACHE register map
0x5002 7000 - 0x5003 03FF0x4002 7000 - 0x4003 03FF-Reserved-
0x5002 6000 - 0x5002 6FFF0x4002 6000 - 0x4002 6FFF4 KRAMCFGRAMCFG register map
0x5002 4400 - 0x5002 5FFF0x4002 4400 - 0x4002 5FFF-Reserved-
0x5002 4000 - 0x5002 43FF0x4002 4000 - 0x4002 43FF1 KTSCTSC register map
0x5002 3400 - 0x5002 3FFF0x4002 3400 - 0x4002 3FFF-Reserved-
0x5002 3000 - 0x5002 33FF0x4002 3000 - 0x4002 33FF1 KCRCCRC register map
0x5002 2400 - 0x5002 2FFF0x4002 2400 - 0x4002 2FFF-Reserved-
0x5002 2000 - 0x5002 23FF0x4002 2000 - 0x4002 23FF1 KFLASH interfaceFLASH register map
0x5002 1000 - 0x5002 1FFF0x4002 1000 - 0x4002 1FFF-Reserved-
APB20x5002 0000 - 0x5002 0FFF0x4002 0000 - 0x4002 0FFF4 KGPDMA1GPDMA register map
0x5001 5800 - 0x5001 FFFF0x4001 5800 - 0x4001 FFFF-Reserved-
0x5001 5400 - 0x5001 57FF0x4001 5400 - 0x4001 57FF1 KSAI1SAI register map
0x5001 4C00 - 0x5001 53FF0x4001 4C00 - 0x4001 53FF-Reserved-
0x5001 4800 - 0x5001 4BFF0x4001 4800 - 0x4001 4BFF1 KTIM17TIM16/TIM17 register map
0x5001 4400 - 0x5001 47FF0x4001 4400 - 0x4001 47FF1 KTIM16
0x5001 3C00 - 0x5001 3FFF0x4001 3C00 - 0x4001 3FFF-Reserved-
0x5001 3800 - 0x5001 3BFF0x4001 3800 - 0x4001 3BFF1 KUSART1USART register map
0x5001 3400 - 0x5001 37FF0x4001 3400 - 0x4001 37FF-Reserved-
0x5001 3000 - 0x5001 33FF0x4001 3000 - 0x4001 33FF1 KSPI1SPI register map
0x5001 2C00 - 0x5001 2FFF0x4001 2C00 - 0x4001 2FFF1 KTIM1TIM1 register map
APB10x5001 0000 - 0x5001 2BFF0x4001 0000 - 0x4001 2BFF-Reserved-
0x5000 9800 - 0x5000 FFFF0x4000 9800 - 0x4000 FFFF-Reserved-
0x5000 9400 - 0x5000 97FF0x4000 9400 - 0x4000 97FF1 KLPTIM2LPTIM register map
0x5000 8800 - 0x5000 93FF0x4000 8800 - 0x4000 93FF-Reserved-
0x5000 8400 - 0x5000 87FF0x4000 8400 - 0x4000 87FF1 KI2C4 (3)I2C register map
0x5000 5C00 - 0x5000 83FF0x4000 5C00 - 0x4000 83FF-Reserved-
0x5000 5800 - 0x5000 5BFF0x4000 5800 - 0x4000 5BFF1 KI2C2 (3)I2C register map
0x5000 5400 - 0x5000 57FF0x4000 5400 - 0x4000 57FF1 KI2C1I2C register map
0x5000 4C00 - 0x5000 53FF0x4000 4C00 - 0x4000 53FF-Reserved-
0x5000 4800 - 0x5000 4BFF0x4000 4800 - 0x4000 4BFF1 KUSART3 (3)USART register map
0x5000 4400 - 0x5000 47FF0x4000 4400 - 0x4000 47FF1 KUSART2USART register map

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

BusNonsecure callable boundary address (1)Nonsecure boundary address (1)Size (bytes)PeripheralPeripheral register map
APB1 (cont'd)0x5000 3C00 - 0x5000 43FF0x4000 3C00 - 0x4000 43FF-Reserved-
0x5000 3800 - 0x5000 3BFF0x4000 3800 - 0x4000 3BFF1 KSPI2 (3)SPI register map
0x5000 3400 - 0x5000 37FF0x4000 3400 - 0x4000 37FF-Reserved-
0x5000 3000 - 0x5000 33FF0x4000 3000 - 0x4000 33FF1 KIWDGIWDG register map
0x5000 2C00 - 0x5000 2FFF0x4000 2C00 - 0x4000 2FFF1 KWWDGWWDG register map
0x5000 0C00 - 0x5000 2BFF0x4000 0C00 - 0x4000 2BFF-Reserved-
0x5000 0800 - 0x5000 0BFF0x4000 0800 - 0x4000 0BFF1 KTIM4 (3)TIMx register map
0x5000 0400 - 0x5000 07FF0x4000 0400 - 0x4000 07FF1 KTIM3
0x5000 0000 - 0x5000 03FF0x4000 0000 - 0x4000 03FF1 KTIM2
AHB0x3008 0000 - 0x4FFF FFFF0x2008 0000 - 0x3FFF FFFF-Reserved-
0x3007 0000 - 0x3007 FFFF0x2007 0000 - 0x2007 FFFF64 KSRAM2-
0x3000 0000 - 0x3006 FFFF0x2000 0000 - 0x2006 FFFF448 K (4)SRAM1-
0x0FFA C000 - 0x2FFF FFFF0x0FFA C000 - 0x1FFF FFFF-Reserved-
0x0FFA 8000 - 0x0FFA BFFF0x0BFA 8000 - 0x0BFB 7FFF16 KFlash user optionsOption bytes description
0x0FFA 4000 - 0x0FFA 7FFF0x0BFA 4000 - 0x0BFA 7FFF-Reserved-
0x0FFA 0500 - 0x0FFA 3FFF0x0BFA 0500 - 0x0BFA 3FFF14.75 KDESIGDESIG register map
0x0FFA 0200 - 0x0FFA 04FF0x0BFA 0200 - 0x0BFA 04FF-Reserved-
0x0FFA 0000 - 0x0FFA 01FF0x0BFA 0000 - 0x0BFA 01FF512OTP-
0x0FF9 8000 - 0x0FF9 FFFF0x0BF9 8000 - 0x0BF9 FFFF-Reserved-
0x0FF9 0000 - 0x0FF9 7FFF0x0BF9 0000 - 0x0BF9 7FFF32 KBootloader-
0x0FF8 6000 - 0x0FF8 FFFF0x0BF8 6000 - 0x0BF8 FFFF40 KRSS-Lib-
0x0FF8 0000 - 0x0FF8 5FFF0x0BF8 0000 - 0x0BF8 5FFF24 KRSS-Boot-
0x0C20 0000 - 0x0FF7 FFFF0x0820 0000 - 0x0BF7 FFFF-Reserved-
0x0C00 0000 - 0x0C1F FFFF0x0800 0000 - 0x081F FFFF2 M (5)User Flash-
0x0000 0000 - 0x0BFF FFFF0x0000 0000 - 0x07FF FFFF-Reserved-

1. Gray shaded fields are reserved.

2. Available only on STM32WBA62/65xx devices.

3. Available only on STM32WBA62/64/65xx devices.

4. Device-dependent (STM32WBA6xxI 448-Kbyte SRAM1 offset 0x0 0000 - 0x6 FFFF, STM32WBA6xxG 192-Kbyte SRAM1 offset 0x0 0000 - 0x2 FFFF where 0x3 0000 - 0x6 FFFF is reserved).

5. Device-dependent (STM32WBA6xxI 2-Mbyte flash offset 0x00 0000 - 0x1F FFFF, STM32WBA6xxG 1-Mbyte flash offset 0x00 0000 - 0x0F FFFF where 0x10 0000 - 0x1F FFFF is reserved).

2.3.3 Embedded SRAM

The devices feature 512 Kbytes of SRAM:

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 flash memory operations (program/erase) controlled through the flash registers plus security access control features. Refer to Section 7: Embedded flash memory (FLASH) for more details.