2. Memory and bus architecture

2.1 System architecture

The STM32U3 series architecture relies on an Arm Cortex-M33 core optimized for execution thanks to an instruction cache having a direct access to the embedded flash memory.

This architecture also features a 32-bit multilayer AHB bus matrix that interconnects:

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. This architecture is shown in the figure below.

Figure 1. System architecture

Figure 1. System architecture diagram showing the internal bus matrix and connected components. The diagram includes a 32-bit bus matrix at the center, connected to a Cortex-M33 core, ICACHE, GPDMA1, SDMMC1, FLASH, MPCBB1-4, SRAM1-4, AHB1/AHB2 peripherals, HSP1, and OCTOSPI1. A legend explains the bus types and multiplexers used.

The diagram illustrates the system architecture of the STM32U3 series microcontroller. At the core is the Cortex-M33 with TrustZone mainline and FPU, connected to a 32-bit bus matrix via three buses: the C-bus (through ICACHE), the Slow-bus (through ICACHE), and the S-bus. The bus matrix is a grid of horizontal and vertical lines with various connection points marked by colored circles representing different types of bus multiplexers: white for a standard bus multiplexer, blue for a fast bus multiplexer, yellow for a fast bus multiplexer on STM32U356/366/375/385, and red for a fast bus multiplexer on STM32U3B5/3C5. The matrix connects to several peripheral blocks: FLASH (512-Kbyte / 1 or 2-Mbyte), MPCBB1 through MPCBB4 (Block-based memory protection controller), SRAM1 through SRAM4, AHB1 and AHB2 peripherals, HSP1, and OCTOSPI1. GPDMA1 is connected to the matrix via Port 0 and Port 1. SDMMC1 is also connected to the matrix. A legend on the right side defines the symbols for bus multiplexers, master/slave interfaces, and the color-coding for different STM32U3 variants. It also notes that some peripherals are present only in STM32U3B5/3C5 (orange) and others are not present in STM32U356/366 (green). The diagram is labeled MSV75435V3 in the bottom right corner.

Figure 1. System architecture diagram showing the internal bus matrix and connected components. The diagram includes a 32-bit bus matrix at the center, connected to a Cortex-M33 core, ICACHE, GPDMA1, SDMMC1, FLASH, MPCBB1-4, SRAM1-4, AHB1/AHB2 peripherals, HSP1, and OCTOSPI1. A legend explains the bus types and multiplexers used.

2.1.1 Fast C-bus

This bus connects the C-bus of the Cortex-M33 core 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 the code region. This bus targets the internal flash memory and the internal SRAMs (SRAM1, SRAM2, and SRAM3).

SRAM1, SRAM2, and SRAM3 are accessible on this bus with a continuous mapping.

2.1.2 Slow C-bus

This bus connects the C-bus of the Cortex-M33 core to the bus matrix via the instruction cache. This bus is used for instruction fetch and data access to the external memories mapped in the code region. This bus targets the external memories (OCTOSPI).

2.1.3 S-bus

This bus connects the system bus of the Cortex-M33 core to the bus matrix. This bus is used by the core to access data located in a peripheral or SRAM area. This bus targets the internal SRAMs (SRAM1, SRAM2, SRAM3, and SRAM4), the AHB1 peripherals including the APB1 and APB2 peripherals, and the AHB2 peripherals.

SRAM1, SRAM2, SRAM3, and SRAM4 are accessible on this bus with a continuous mapping.

Note: The bus matrix has a zero latency when accessing SRAM1, SRAM2, SRAM3, and SRAM4.

2.1.4 GPDMA-bus

These buses connect the two AHB master interfaces of the GPDMA to the bus matrix. These buses target the internal flash memory, the internal SRAMs (SRAM1, SRAM2, SRAM3, and SRAM4), the AHB1 peripherals including the APB1 and APB2 peripherals, the AHB2 peripherals, the APB3 peripherals and the external memories through OCTOSPI.

2.1.5 SDMMC1 controller DMA bus

This bus connects the SDMMC1 DMA master interface to the bus matrix. This bus is used only by the SDMMC1 DMA to load/store data from/to the memory. This bus targets the data memories: internal flash memory, internal SRAMs (SRAM1, SRAM2, SRAM3, and SRAM4) and external memories through OCTOSPI.

2.1.6 Bus matrix

The bus matrix manages the access arbitration between masters. The arbitration uses a round-robin algorithm. This bus matrix features a fast bus multiplexer used to connect each master to a given slave without latency (see Figure 1 ). For the same master, other slaves undergo a latency of at least one cycle at each new access.

2.1.7 AHB/APB bridges

The three AHB/APB bridges provide full synchronous connections between the AHB and the APB buses, allowing flexible selection of the peripheral frequency.

Refer to Memory and bus architecture for the address mapping of the peripherals connected to these bridges.

After each device reset, all peripheral clocks are disabled (except for the internal SRAMs and flash memory interfaces). Before using a peripheral, its clock must be enabled in the RCC_AHBxENR and RCC_APBxENR registers.

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

2.2 Arm TrustZone security architecture

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

The TrustZone security is activated by the TZEN option bit in the FLASH_OPTR register.

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.

register boundary addresses ). 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. The external memories space is not aliased.

The table below shows an example of typical eight SAU regions mapping based on IDAU regions. The user can split and choose the secure, nonsecure or NSC regions for external memories as needed.

Table 1. Example of memory map security attribution versus SAU configuration regions

Region descriptionAddress rangeIDAU security attributionSAU security attribution typical configurationFinal security attribution
Code - external memories0x0000_0000 0x07FF_FFFFNonsecureSecure, nonsecure or NSC (1)Secure, nonsecure, or NSC
Code - flash memory and SRAM0x0800_0000 0x0BFF_FFFFNonsecureNonsecureNonsecure
0x0C00_0000 0x0FFF_FFFFNSCSecure or NSCSecure or NSC
Code - external memories0x1000_0000 0x17FF_FFFFNonsecureNonsecureNonsecure
0x1800_0000 0x1FFF_FFFF
SRAM0x2000_0000 0x2FFF_FFFFFNonsecure
0x3000_0000 0x3FFF_FFFFFNSCSecure or NSCSecure or NSC
Peripherals0x4000_0000 0x4FFF_FFFFFNonsecureNonsecureNonsecure
0x5000_0000 0x5FFF_FFFFFNSCSecure or NSCSecure or NSC
External memories0x6000_0000 0xDFFF_FFFFNonsecureSecure, nonsecure or NSCSecure, nonsecure or NSC

1. NSC = nonsecure callable

2.2.1 Default Arm 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 Arm TrustZone peripheral classification

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

Refer to Section 2.2: Arm TrustZone security architecture for more details.

The tables below list the securable and TrustZone-aware peripherals within the system.

Table 2. Securables peripherals by TZSC

BusPeripheralSTM32U356/366STM32U375/385STM32U3B5/3C5
AHB2DAC1XXX
OCTOSPI1XXX
SDMMC1-XX
CCBXXX
SAESXXX
PKA (+RAM)XXX
RNGXXX
HASHXXX
AESXXX
ADC2XXX
ADC1XXX

Table 2. Securable peripherals by TZSC (continued)

BusPeripheralSTM32U356/366STM32U375/385STM32U3B5/3C5
AHB1ADF1-XX
ICACHE registersXXX
RAMCFGXXX
TSCXXX
CRCXXX
HSP1--X
APB3LCDX--
COMPXXX
LPTIM4XXX
LPTIM3XXX
LPTIM1XXX
I2C3XXX
LPUART1XXX
APB2I3C2-XX
USBXXX
SAI1-XX
TIM17XXX
TIM16XXX
TIM15XXX
TIM12--X
USART1XXX
SPI1XXX
TIM8--X
TIM1XXX

Table 2. Securable peripherals by TZSC (continued)

BusPeripheralSTM32U356/366STM32U375/385STM32U3B5/3C5
APB1VREFBUFXXX
OPAMPXXX
I3C1XXX
FDCAN2--X
FDCAN1-XX
LPTIM2XXX
CRSXXX
I2C4--X
I2C2-XX
I2C1XXX
UART5XXX
UART4XXX
USART3XXX
USART2--X
SPI4--X
SPI3XXX
SPI2XXX
IWDGXXX
WWDGXXX
TIM7XXX
TIM6XXX
TIM4XXX
TIM3XXX
TIM2XXX

Table 3. TrustZone aware peripherals

BusPeripheralSTM32U356/366STM32U375/385STM32U3B5/3C5
AHB2GPIOHXXX
GPIOG-XX
GPIOF--X
GPIOEXXX
GPIO_DXXX
GPIOCXXX
GPIOBXXX
GPIOAXXX
Table 3. TrustZone aware peripherals (continued)
BusPeripheralSTM32U356/366STM32U375/385STM32U3B5/3C5
AHB1GTZC1XXX
ICACHEXXX
FLASHXXX
EXTIXXX
GPDMA1XXX
RCCXXX
PWRXXX
APB3SYSCFGXXX
APB1TAMPXXX
RTCXXX

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.

2.3.2 Memory map and register boundary addresses

Figure 2. Memory map based on IDAU mapping for STM32U356/366

Memory map diagram for STM32U356/366 showing address ranges and security attributes for various memory regions and peripherals.

Legend:

Address RangeMemory Region / PeripheralSecurity Attribute
0x0000 0000 - 0x0000 0000External memories remapNonsecure
0x0800 0000 - 0x0808 0000FLASHNonsecure
0x0A00 0000 - 0x0A02 0000SRAM1Nonsecure
0x0A03 0000 - 0x0A0A 0000SRAM2Nonsecure
0x0BFA 0000 - 0x0BFA 0200OTPNonsecure
0x0C00 0000 - 0x0C08 0000FLASHNonsecure
0x0E00 0000 - 0x0E02 0000SRAM1Nonsecure
0x0E03 0000 - 0x0E0E 0000SRAM2Nonsecure
0x0FF8 0000 - 0x0FF8 8000RSSSecure - Nonsecure callable
0x1000 0000 - 0x1800 0000External memories remapNonsecure
0x4000 0000 - 0x4000 0000APB1Nonsecure
0x4001 2C00 - 0x4001 7000APB2Nonsecure
0x4002 0000 - 0x4002 0000ReservedNonsecure
0x4003 5000 - 0x4003 5000AHB1Nonsecure
0x4004 0400 - 0x4004 0400ReservedNonsecure
0x4004 5800 - 0x4004 5800APB3Nonsecure
0x4202 0000 - 0x4202 0000ReservedNonsecure
0x420D 1800 - 0x420D 1800AHB2Nonsecure
0x5000 0000 - 0x5000 0000APB1Nonsecure
0x5001 2C00 - 0x5001 7000APB2Nonsecure
0x5002 0000 - 0x5002 0000ReservedNonsecure
0x5003 5000 - 0x5003 5000AHB1Nonsecure
0x5004 0400 - 0x5004 0400ReservedNonsecure
0x5004 5800 - 0x5004 5800APB3Nonsecure
0x5202 0000 - 0x5202 0000ReservedNonsecure
0x520D 1800 - 0x520D 1800AHB2Nonsecure
0x6000 0000 - 0x6000 0000ReservedNonsecure

Memory map details:

Memory map diagram for STM32U356/366 showing address ranges and security attributes for various memory regions and peripherals.
Figure 3. Memory map based on IDAU mapping for STM32U375/385 Memory map diagram for STM32U375/385 showing address ranges and security attributes for various memory regions.
Nonsecure
Secure - Nonsecure callable

The diagram illustrates the memory map for the STM32U375/385 microcontroller, showing the mapping of physical memory to logical addresses and the security attributes of each region.

Logical Address Space (Left Side):

Physical Memory Map (Right Side Detail):

MSv75404V2

Memory map diagram for STM32U375/385 showing address ranges and security attributes for various memory regions.

Figure 4. Memory map based on IDAU mapping for STM323B5/3C5

Memory map diagram for STM323B5/3C5 showing address ranges, memory types, and security attributes. The diagram includes a legend for 'Nonsecure' (pink) and 'Secure - Nonsecure callable' (green). The main memory map shows various regions like Cortex-M33, OCTOSPI1 bank, Peripherals, SRAM1/2/3/4, Code, FLASH, and External memories remap. A secondary table on the right lists address ranges and their corresponding memory types.

Legend:

Memory Map:

Address RangeMemory TypeSecurity Attribute
0xFFFF FFFFCortex-M33Nonsecure
0xE000 0000ReservedReserved
0xA000 0000OCTOSPI1 bankNonsecure
0x9000 0000ReservedReserved
0x6000 0000PeripheralsNonsecure callable
0x5000 0000PeripheralsNonsecure
0x4000 0000ReservedReserved
0x300A 4000 (1)SRAM1/2/3/4Nonsecure callable
0x3000 0000ReservedReserved
0x200A 4000 (1)SRAM1/2/3/4Nonsecure
0x2000 0000CodeNonsecure
0x1000 0000CodeNonsecure callable
0x0C00 0000CodeNonsecure
0x0000 0000CodeNonsecure

Peripheral and System Memory Map:

Address RangeMemory Type
0x6000 0000Reserved
0x520D 1800AHB2
0x5202 0000Reserved
0x5004 5800APB3
0x5004 0400Reserved
0x5003 5000AHB1
0x5002 0000Reserved
0x5001 7000APB2
0x5001 2C00Reserved
0x5000 B400APB1
0x5000 0000Reserved
0x420D 1800AHB2
0x4202 0000Reserved
0x4004 5800APB3
0x4004 0400Reserved
0x4003 5000AHB1
0x4002 0000Reserved
0x4001 7000APB2
0x4001 2C00Reserved
0x4000 B400APB1
0x4000 0000Reserved

System Memory Map:

Address RangeMemory Type
0x1800 0000External memories remap
0x1000 0000Reserved
0x0FF8 8000RSS
0x0FF8 0000Reserved
0x0E09 0000SRAM3
0x0E04 0000SRAM2
0x0E03 0000SRAM1
0x0E00 0000Reserved
0x0C20 0000FLASH
0x0C00 0000Reserved
0x0BFA 0200OTP
0x0BFA 0000System memory
0x0BF8 F000Reserved
0x0A09 0000SRAM3
0x0A04 0000SRAM2
0x0A03 0000SRAM1
0x0A00 0000Reserved
0x0820 0000FLASH
0x0800 0000External memories remap
0x0000 0000External memories remap

1. End address includes 16kB of SRAM4 BRAM-AB dual port remapping (refer to HSP1 section)

MSv75436V3

Memory map diagram for STM323B5/3C5 showing address ranges, memory types, and security attributes. The diagram includes a legend for 'Nonsecure' (pink) and 'Secure - Nonsecure callable' (green). The main memory map shows various regions like Cortex-M33, OCTOSPI1 bank, Peripherals, SRAM1/2/3/4, Code, FLASH, and External memories remap. A secondary table on the right lists address ranges and their corresponding memory types.

All memory map areas that are not allocated to on-chip memories and peripherals are considered “Reserved”. The following table gives the boundary addresses of the peripherals available in the devices.

Table 4. Memory map and peripheral register boundary addresses

BusSecure boundary addressNonsecure boundary addressSize (bytes)PeripheralPeripheral register map section numberSTM32U356/366STM32U375/385STM32U3B5/3C5
XXX
AHB20x520D 1800 - 0x5FFF FFFF0x420D 1800 - 0x4FFF FFFF223 MReserved-XXX
0x520D 1400 - 0x520D 17FF0x420D 1400 - 0x420D 17FF1 KOCTOSPI120.7.28XXX
0x520C F400 - 0x520D 13FF0x420C F400 - 0x420D 13FF8 KReserved-XXX
0x520C F000 - 0x520C F3FF0x420C F000 - 0x420C F3FF1 KDLYBOS122.5.3XXX
0x520C 8800 - 0x520C EFFF0x420C 8800 - 0x420C EFFF26 KReserved-XXX
0x520C 8400 - 0x520C 87FF0x420C 8400 - 0x420C 87FF1 KDLYBSD122.5.3XXX
0x520C 8000 - 0x520C 83FF0x420C 8000 - 0x420C 83FF1 KSDMMC121.10.21-XX
0x520C 7C00 - 0x520C 7FFF0x420C 7C00 - 0x420C 7FFF1 KCCB31.7.4XXX
0x520C 4000 - 0x520C 7BFF0x420C 4000 - 0x420C 7BFF15 KReserved-XXX
0x520C 2000 - 0x520C 3FFF0x420C 2000 - 0x420C 3FFF8 KPKA +RAM36.8.5XXX
0x520C 1000 - 0x520C 1FFF0x420C 1000 - 0x420C 1FFF4 KReserved-XXX
0x520C 0C00 - 0x520C 0FFF0x420C 0C00 - 0x420C 0FFF1 KSAES34.8.21XXX
0x520C 0800 - 0x520C 0BFF0x420C 0800 - 0x420C 0BFF1 KRNG32.7.9XXX
0x520C 0400 - 0x520C 07FF0x420C 0400 - 0x420C 07FF1 KHASH35.6.8XXX
0x520C 0000 - 0x520C 03FF0x420C 0000 - 0x420C 03FF1 KAES33.8.21XXX
0x5202 8800 - 0x520B FFFF0x4202 8800 - 0x420B FFFF606 KReserved-XXX
0x5202 8400 - 0x5202 87FF0x4202 8400 - 0x4202 87FF1 KDAC124.7.22XXX
0x5202 8300 - 0x5202 83FF0x4202 8300 - 0x4202 83FF256ADC1223.8.1XXX
0x5202 8200 - 0x5202 82FF0x4202 8200 - 0x4202 82FF256Reserved-XXX
0x5202 8100 - 0x5202 81FF0x4202 8100 - 0x4202 81FF256ADC223.7.28XXX
0x5202 8000 - 0x5202 80FF0x4202 8000 - 0x4202 80FF256ADC123.7.3XXX
0x5202 2000 - 0x5202 7FFF0x4202 2000 - 0x4202 7FFF24 KReserved-XXX
0x5202 1C00 - 0x5202 1FFF0x4202 1C00 - 0x4202 1FFF1 KGPIOH12.6.14XXX
0x5202 1800 - 0x5202 1BFF0x4202 1800 - 0x4202 1BFF1 KGPIOG-XX
0x5202 1400 - 0x5202 17FF0x4202 1400 - 0x4202 17FF1 KGPIOF--X
0x5202 1000 - 0x5202 13FF0x4202 1000 - 0x4202 13FF1 KGPIOEXXX
0x5202 0C00 - 0x5202 0FFF0x4202 0C00 - 0x4202 0FFF1 KGPIO DXXX
0x5202 0800 - 0x5202 0BFF0x4202 0800 - 0x4202 0BFF1 KGPIOCXXX
0x5202 0400 - 0x5202 07FF0x4202 0400 - 0x4202 07FF1 KGPIOBXXX
0x5202 0000 - 0x5202 03FF0x4202 0000 - 0x4202 03FF1 KGPIOAXXX

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

BusSecure boundary addressNonsecure boundary addressSize (bytes)PeripheralPeripheral register map section numberSTM32U356/366STM32U375/385STM32U3B5/3C5
APB30x5004 8400 - 0x5201 FFFF0x4004 8400 - 0x4201 FFFF31 MReserved-XXX
0x5004 8000 - 0x5004 83FF0x4004 8000 - 0x4004 83FF1 KLCD29.6.8X--
0x5004 5800 - 0x5004 7FFF0x4004 5800 - 0x4004 7FFF9 KReserved-XXX
0x5004 5400 - 0x5004 57FF0x4004 5400 - 0x4004 57FF1 KCOMP26.6.3XXX
0x5004 5000 - 0x5004 53FF0x4004 5000 - 0x4004 53FF1 KReserved-XXX
0x5004 4C00 - 0x5004 4FFF0x4004 4C00 - 0x4004 4FFF1 KLPTIM442.7.19XXX
0x5004 4800 - 0x5004 4BFF0x4004 4800 - 0x4004 4BFF1 KLPTIM3XXX
0x5004 4400 - 0x5004 47FF0x4004 4400 - 0x4004 47FF1 KLPTIM1XXX
0x5004 2C00 - 0x5004 43FF0x4004 2C00 - 0x4004 43FF6 KReserved-XXX
0x5004 2800 - 0x5004 2BFF0x4004 2800 - 0x4004 2BFF1 KI2C348.9.13XXX
0x5004 2400 - 0x5004 27FF0x4004 2400 - 0x4004 27FF1 KLPUART152.7.15XXX
0x5004 0800 - 0x5004 23FF0x4004 0800 - 0x4004 23FF7 KReserved-XXX
0x5004 0400 - 0x5004 07FF0x4004 0400 - 0x4004 07FF1 KSYSCFG13.3.11XXX
0x5004 0000 - 0x5004 03FF0x4004 0000 - 0x4004 03FF1 KReserved-XXX
0x5003 5000 - 0x5003 FFFF0x4003 5000 - 0x4003 FFFF44 KReserved-XXX
AHB10x5003 4000 - 0x5003 4FFF0x4003 4000 - 0x4003 4FFF4 KADF128.8.17XXX
0x5003 3C00 - 0x5003 3FFF0x4003 3C00 - 0x4003 3FFF1 KReserved-XXX
0x5003 3800 - 0x5003 3BFF0x4003 3800 - 0x4003 3BFF1 KGTZC1 MPCBB45.7.5--X
0x5003 3400 - 0x5003 37FF0x4003 3400 - 0x4003 37FF1 KGTZC1 MPCBB35.6.5--X
0x5003 3000 - 0x5003 33FF0x4003 3000 - 0x4003 33FF1 KGTZC1 MPCBB25.5.5XXX
0x5003 2C00 - 0x5003 2FFF0x4003 2C00 - 0x4003 2FFF1 KGTZC1 MPCBB15.4.5XXX
0x5003 2800 - 0x5003 2BFF0x4003 2800 - 0x4003 2BFF1 KGTZC1 TZIC5.3.13XXX
0x5003 2400 - 0x5003 27FF0x4003 2400 - 0x4003 27FF1 KGTZC1 TZSC5.2.8XXX
0x5003 2000 - 0x5003 23FF0x4003 2000 - 0x4003 23FF1 KEXTI17.4.12XXX
0x5003 1000 - 0x5003 1FFF0x4003 1000 - 0x4003 1FFF4 KReserved-XXX
0x5003 0C00 - 0x5003 0FFF0x4003 0C00 - 0x4003 0FFF1 KRCC10.5.1XXX
0x5003 0800 - 0x5003 0BFF0x4003 0800 - 0x4003 0BFF1 KPWR9.5.36XXX
0x5003 0400 - 0x5003 07FF0x4003 0400 - 0x4003 07FF1 KICACHE8.7.8XXX
0x5002 C400 - 0x5003 03FF0x4002 C400 - 0x4003 03FF16 KReserved-XXX
0x5002 C000 - 0x5002 C3FF0x4002 C000 - 0x4002 C3FF1 KHSP119.7.54--X

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

BusSecure boundary addressNonsecure boundary addressSize (bytes)PeripheralPeripheral register map section numberSTM32U356/366STM32U375/385STM32U3B5/3C5
XXX
AHB10x5002 7000 - 0x5002 BFFF0x4002 7000 - 0x4002 BFFF20 KReserved-XXX
0x5002 6000 - 0x5002 6FFF0x4002 6000 - 0x4002 6FFF4 KRAMCFG6.6.10XXX
0x5002 4400 - 0x5002 5FFF0x4002 4400 - 0x4002 5FFF7 KReserved-XXX
0x5002 4000 - 0x5002 43FF0x4002 4000 - 0x4002 43FF1 KTSC30.7.11XXX
0x5002 3400 - 0x5002 3FFF0x4002 3400 - 0x4002 3FFF3 KReserved-XXX
0x5002 3000 - 0x5002 33FF0x4002 3000 - 0x4002 33FF1 KCRC18.4.6XXX
0x5002 2400 - 0x5002 2FFF0x4002 2400 - 0x4002 2FFF3 KReserved-XXX
0x5002 2000 - 0x5002 23FF0x4002 2000 - 0x4002 23FF1 KFLASH7.10.1XXX
0x5002 1000 - 0x5002 1FFF0x4002 1000 - 0x4002 1FFF4 KReserved-XXX
0x5002 0000 - 0x5002 0FFF0x4002 0000 - 0x4002 0FFF4 KGPDMA115.8.20XXX
APB20x5001 7000 - 0x5001 FFFF0x4001 7000 - 0x4001 FFFF36 KReserved-XXX
0x5001 6C00 - 0x5001 6FFF0x4001 6C00 - 0x4001 6FFF1 KI3C249.16.30-XX
0x5001 6400 - 0x5001 6BFF0x4001 6400 - 0x4001 6BFF2 KUSB RAM56.6.8XXX
0x5001 6000 - 0x5001 63FF0x4001 6000 - 0x4001 63FF1 KUSBXXX
0x5001 5800 - 0x5001 5FFF0x4001 5800 - 0x4001 5FFF2 KReserved-XXX
0x5001 5400 - 0x5001 57FF0x4001 5400 - 0x4001 57FF1 KSAI154.6.19XX
0x5001 4C00 - 0x5001 53FF0x4001 4C00 - 0x4001 53FF2 KReserved-XXX
0x5001 4800 - 0x5001 4BFF0x4001 4800 - 0x4001 4BFF1 KTIM1741.8.22XXX
0x5001 4400 - 0x5001 47FF0x4001 4400 - 0x4001 47FF1 KTIM16XXX
0x5001 4000 - 0x5001 43FF0x4001 4000 - 0x4001 43FF1 KTIM1541.7.23XXX
0x5001 3C00 - 0x5001 3FFF0x4001 3C00 - 0x4001 3FFF1 KTIM1240.6.16--X
0x5001 3800 - 0x5001 3BFF0x4001 3800 - 0x4001 3BFF1 KUSART151.8.17XXX
0x5001 3400 - 0x5001 37FF0x4001 3400 - 0x4001 37FF1 KTIM837.6.31--X
0x5001 3000 - 0x5001 33FF0x4001 3000 - 0x4001 33FF1 KSPI153.8.15XXX
0x5001 2C00 - 0x5001 2FFF0x4001 2C00 - 0x4001 2FFF1 KTIM137.6.31XXX
0x5001 0000 - 0x5001 2BFF0x4001 0000 - 0x4001 2BFF11 KReserved-XXX

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

BusSecure boundary addressNonsecure boundary addressSize (bytes)PeripheralPeripheral register map section numberSTM32U356/366STM32U375/385STM32U3B5/3C5
APB10x5000 B400 - 0x5000 FFFF0x4000 B400 - 0x4000 FFFF19 KReserved-XXX
0x5000 B000 - 0x5000 B3FF0x4000 B000 - 0x4000 B3FF1 KFDCAN SRAM---X
0x5000 AC00 - 0x5000 AFFF0x4000 AC00 - 0x4000 AFFF1 KFDCAN SRAM--XX
0x5000 A800 - 0x5000 ABFF0x4000 A800 - 0x4000 ABFF1 KFDCAN255.5.38--X
0x5000 A400 - 0x5000 A7FF0x4000 A400 - 0x4000 A7FF1 KFDCAN1-XX
0x5000 9800 - 0x5000 A3FF0x4000 9800 - 0x4000 A3FF3 KReserved-XXX
0x5000 9400 - 0x5000 97FF0x4000 9400 - 0x4000 97FF1 KLPTIM242.7.19XXX
0x5000 8800 - 0x5000 93FF0x4000 8800 - 0x4000 93FF3 KReserved-XXX
0x5000 8400 - 0x5000 87FF0x4000 8400 - 0x4000 87FF1 KI2C448.9.13--X
0x5000 8000 - 0x5000 83FF0x4000 8000 - 0x4000 83FF1 KReserved-XXX
0x5000 7C00 - 0x5000 7FFF0x4000 7C00 - 0x4000 7FFF1 KTAMP47.6.15XXX
0x5000 7800 - 0x5000 7BFF0x4000 7800 - 0x4000 7BFF1 KRTC46.6.28XXX
0x5000 7400 - 0x5000 77FF0x4000 7400 - 0x4000 77FF1 KVREFBUF25.5.3XXX
0x5000 7000 - 0x5000 73FF0x4000 7000 - 0x4000 73FF1 KOPAMP27.5.7XXX
0x5000 6400 - 0x5000 6FFF0x4000 6400 - 0x4000 6FFF3 KReserved-XXX
0x5000 6000 - 0x5000 63FF0x4000 6000 - 0x4000 63FF1 KCRS11.7.5XXX
0x5000 5C00 - 0x5000 5FFF0x4000 5C00 - 0x4000 5FFF1 KI3C149.16.30XXX
0x5000 5800 - 0x5000 5BFF0x4000 5800 - 0x4000 5BFF1 KI2C248.9.13-XX
0x5000 5400 - 0x5000 57FF0x4000 5400 - 0x4000 57FF1 KI2C1XXX
0x5000 5000 - 0x5000 53FF0x4000 5000 - 0x4000 53FF1 KUART551.8.17XXX
0x5000 4C00 - 0x5000 4FFF0x4000 4C00 - 0x4000 4FFF1 KUART4XXX
0x5000 4800 - 0x5000 4BFF0x4000 4800 - 0x4000 4BFF1 KUSART3XXX
0x5000 4400 - 0x5000 47FF0x4000 4400 - 0x4000 47FF1 KUSART2--X
0x5000 3C00 - 0x5000 43FF0x4000 3C00 - 0x4000 43FF2 KReserved-XXX
0x5000 3800 - 0x5000 3BFF0x4000 3800 - 0x4000 3BFF1 KSPI253.8.15XXX
0x5000 3400 - 0x5000 37FF0x4000 3400 - 0x4000 37FF1 KReserved-XXX
0x5000 3000 - 0x5000 33FF0x4000 3000 - 0x4000 33FF1 KIWDG44.7.7XXX
0x5000 2C00 - 0x5000 2FFF0x4000 2C00 - 0x4000 2FFF1 KWWDG45.6.4XXX
0x5000 2800 - 0x5000 2BFF0x4000 2800 - 0x4000 2BFF1 KReserved-XXX
APB10x5000 2400 - 0x5000 27FF0x4000 2400 - 0x4000 27FF1 KSPI453.8.15--X
0x5000 2000 - 0x5000 23FF0x4000 2000 - 0x4000 23FF1 KSPI3XXX
0x5000 1800 - 0x5000 1FFF0x4000 1800 - 0x4000 1FFF2 KReserved-XXX
0x5000 1400 - 0x5000 17FF0x4000 1400 - 0x4000 17FF1 KTIM739.4.9XXX
0x5000 1000 - 0x5000 13FF0x4000 1000 - 0x4000 13FF1 KTIM6XXX
0x5000 0C00 - 0x5000 0FFF0x4000 0C00 - 0x4000 0FFF1 KReserved-XXX
0x5000 0800 - 0x5000 0BFF0x4000 0800 - 0x4000 0BFF1 KTIM438.5.25XXX
0x5000 0400 - 0x5000 07FF0x4000 0400 - 0x4000 07FF1 KTIM3XXX
0x5000 0000 - 0x5000 03FF0x4000 0000 - 0x4000 03FF1 KTIM2-XXX

2.3.3 Embedded SRAMs

The devices feature following SRAMs configuration:

Table 5. SRAM sizes

SRAMSTM32U356/366STM32U375/385STM32U3B5/3C5
SRAM1128 Kbytes192 Kbytes
SRAM264 Kbytes
SRAM3--320 Kbytes
SRAM4--64 Kbytes
TOTAL192 Kbytes256 Kbytes640 Kbytes

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 DMAs.

The CPU can access the SRAM1 and SRAM2 through the system bus or through the C-bus depending on the selected address.

On STM32U3B5/3C5 devices, the last 32 Kbytes of SRAM4 can be accessed as dual port RAM on the next 16 Kbytes address range: from 0x200A 0000 to 0x200A 3FFF or from 0x300A 0000 to 0x300A 3FFF).

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