1. Documentation conventions

1.1 General information

The STM32F72xxx and STM32F73xxx devices have an Arm ®(a) Cortex ® -M7 core.

Arm logo
Arm logo

1.2 List of abbreviations for registers

The following abbreviations (b) are used in register descriptions:

read/write (rw)Software can read and write to this bit.
read-only (r)Software can only read this bit.
write-only (w)Software can only write to this bit. Reading this bit returns the reset value.
read/clear write0 (rc_w0)Software can read as well as clear this bit by writing 0. Writing 1 has no effect on the bit value.
read/clear write1 (rc_w1)Software can read as well as clear this bit by writing 1. Writing 0 has no effect on the bit value.
read/clear write (rc_w)Software can read as well as clear this bit by writing to the register. The value written to this bit is not important.
read/clear by read (rc_r)Software can read this bit. Reading this bit automatically clears it to 0. Writing this bit has no effect on the bit value.
read/set by read (rs_r)Software can read this bit. Reading this bit automatically sets it to 1. Writing this bit has no effect on the bit value.
read/set (rs)Software can read as well as set this bit. Writing 0 has no effect on the bit value.
read/write once (rwo)Software can only write once to this bit and can also read it at any time. Only a reset can return the bit to its reset value.
toggle (t)The software can toggle this bit by writing 1. Writing 0 has no effect.
read-only write trigger (rt_w1)Software can read this bit. Writing 1 triggers an event but has no effect on the bit value.
Reserved (Res.)Reserved bit, must be kept at reset value.

1.3 Register reset value

Bits (binary notation) or bits nibbles (hexadecimal notation) of which the reset value is undefined are marked as X.


a. Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.

b. This is an exhaustive list of all abbreviations applicable to STMicroelectronics microcontrollers, some of them may not be used in the current document.

Bits (binary notation) or bits nibbles (hexadecimal notation) of which the reset value is unmodified are marked as U.

1.4 Glossary

This section gives a brief definition of acronyms and abbreviations used in this document:

For both the JTAG and SWD protocols, refer to the Cortex®-M7 Technical Reference Manual.

1.5 Availability of peripherals

For availability of peripherals and their number across all devices, refer to the particular device datasheet.

1.6 Memory organization

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

1.6.2 Memory map and register boundary addresses

Figure 1. Memory map

Memory map diagram showing address ranges for various memory blocks and system components. The diagram is split into two main columns. The left column shows 512-Mbyte blocks 0 through 7 with their respective address ranges. The right column shows the corresponding system components: ITCM RAM, Reserved, System memory, Flash memory on ITCM interface, Reserved, Flash memory on AXIM interface, Reserved, Option Bytes, Reserved, DTCM (64 KB), SRAM1 (176 KB), SRAM2 (16 KB), Reserved, APB1, APB2, Reserved, AHB1, Reserved, AHB2, Reserved, AHB3, Cortex-M7 internal peripherals, and Reserved. Address ranges are provided for each component.
0x0000 0000512-Mbyte Block 0ITCM RAM0x0000 0000 - 0x0000 3FFF
Reserved0x0000 4000 - 0x000F FFFF
System memory0x0010 0000 - 0x0010 EDBF
Reserved0x0011 0000 - 0x001F FFFF
Flash memory on ITCM interface0x0020 0000 - 0x0020 FFFF
Reserved0x0028 0000 - 0x07FF FFFF
Flash memory on AXIM interface0x0800 0000 - 0x0800 FFFF
Reserved0x0808 0000 - 0x1FFE FFFF
Option Bytes0x1FFF 0000 - 0x1FFF 001F
Reserved0x1FFF 0020 - 0x1FFF FFFF
DTCM (64 KB)0x2000 0000 - 0x2000 FFFF
SRAM1 (176 KB)0x2001 0000 - 0x2003 BFFF
SRAM2 (16 KB)0x2003 C000 - 0x2003 FFFF
Reserved0x2004 0000 - 0x3FFF FFFF
0x2000 0000
0x1FFF FFFF
512-Mbyte Block 1 SRAMAPB10x4000 0000 - 0x4001 6BFF
0x4000 0000
0x3FFF FFFF
512-Mbyte Block 2 PeripheralsAPB20x4001 6C00 - 0x4001 FFFF
0x6000 0000
0x5FFF FFFF
512-Mbyte Block 3 FMC bank 1 to bank 2Reserved0x4002 0000 - 0x4002 0000
0x8000 0000
0x7FFF FFFF
512-Mbyte Block 4 Quad-SPI and FMC bank 3Reserved0x4007 FFFF - 0x4008 0000
0xC000 0000
0x9FFF FFFF
512-Mbyte Block 5 FMCReserved0x5006 0BFF - 0x5006 0C00
0xD000 0000
0xCFFF FFFF
512-Mbyte Block 6 FMCReserved0x6000 0000 - 0xDFFF FFFF
0xE000 0000
0xDFFF FFFF
512-Mbyte Block 7 Cortex-M7 Internal peripheralsCortex-M7 internal peripherals0xE000 0000 - 0xE00F FFFF
0xFFFF FFFFReserved0xE010 0000 - 0xFFFF FFFF
Memory map diagram showing address ranges for various memory blocks and system components. The diagram is split into two main columns. The left column shows 512-Mbyte blocks 0 through 7 with their respective address ranges. The right column shows the corresponding system components: ITCM RAM, Reserved, System memory, Flash memory on ITCM interface, Reserved, Flash memory on AXIM interface, Reserved, Option Bytes, Reserved, DTCM (64 KB), SRAM1 (176 KB), SRAM2 (16 KB), Reserved, APB1, APB2, Reserved, AHB1, Reserved, AHB2, Reserved, AHB3, Cortex-M7 internal peripherals, and Reserved. Address ranges are provided for each component.

MSv41006V2

All the memory map areas that are not allocated to on-chip memories and peripherals are considered “Reserved”. For the detailed mapping of available memory and register areas, refer to the following table.

The following table gives the boundary addresses of the peripherals available in the devices.

Table 1. STM32F72xxx and STM32F73xxx register boundary addresses

Boundary addressPeripheralBusRegister map
0xA000 1000 - 0xA000 1FFFQuadSPI Control RegisterAHB3Section 13.5.14: QUADSPI register map on page 378
0xA000 0000 - 0xA000 0FFFFMC control registerSection 12.8.6: FMC register map on page 349
0x5006 0800 - 0x5006 0BFFRNGAHB2Section 16.7.4: RNG register map on page 458
0x5006 0000 - 0x5006 03FFAESSection 17.7.18: AES register map on page 510
0x5000 0000 - 0x5003 FFFFUSB OTG FSSection 32.15.64: OTG_FS/OTG_HS register map on page 1288
0x4004 0000 - 0x4007 FFFFUSB OTG HSSection 32.15.64: OTG_FS/OTG_HS register map on page 1288
0x4002 6400 - 0x4002 67FFDMA2AHB1Section 8.5.11: DMA register map on page 252
0x4002 6000 - 0x4002 63FFDMA1
0x4002 4000 - 0x4002 4FFFBKPSRAMSection 5.3.27: RCC register map on page 192
0x4002 3C00 - 0x4002 3FFFFlash interface registerSection 3.7.9: Flash interface register map
0x4002 3800 - 0x4002 3BFFRCCSection 5.3.27: RCC register map on page 192
0x4002 3000 - 0x4002 33FFCRCSection 11.4.6: CRC register map on page 275
0x4002 2000 - 0x4002 23FFGPIOISection 6.4.11: GPIO register map on page 212
0x4002 1C00 - 0x4002 1FFFGPIOH
0x4002 1800 - 0x4002 1BFFGPIOG
0x4002 1400 - 0x4002 17FFGPIOF
0x4002 1000 - 0x4002 13FFGPIOE
0x4002 0C00 - 0x4002 0FFFGPIO D
0x4002 0800 - 0x4002 0BFFGPIOC
0x4002 0400 - 0x4002 07FFGPIOB
0x4002 0000 - 0x4002 03FFGPIOA

Table 1. STM32F72xxx and STM32F73xxx register boundary addresses (continued)

Boundary addressPeripheralBusRegister map
0x4001 7C00 - 0x4001 7FFFUSBPHYCAPB2Section 33.4.4: USBPHYC register map
0x4001 5C00 - 0x4001 5FFFSAI2Section 29.5.18: SAI register map on page 1064
0x4001 5800 - 0x4001 5BFFSAI1Section 29.5.18: SAI register map on page 1064
0x4001 5000 - 0x4001 53FFSPI5Section 28.9.10: SPI/I2S register map on page 1010
0x4001 4800 - 0x4001 4BFFTIM11Section 20.5.13: TIM10/TIM11/TIM13/TIM14 register map on page 728
0x4001 4400 - 0x4001 47FFTIM10
0x4001 4000 - 0x4001 43FFTIM9Section 20.4.14: TIM9/TIM12 register map on page 717
0x4001 3C00 - 0x4001 3FFFEXTISection 10.9.7: EXTI register map on page 268
0x4001 3800 - 0x4001 3BFFSYSCFGSection 7.2.8: SYSCFG register maps on page 220
0x4001 3400 - 0x4001 37FFSPI4Section 28.9.10: SPI/I2S register map on page 1010
0x4001 3000 - 0x4001 33FFSPI1Section 28.9.10: SPI/I2S register map on page 1010
0x4001 2C00 - 0x4001 2FFFSDMMC1Section 30.8.16: SDMMC register map on page 1124
0x4001 2000 - 0x4001 23FFADC1 - ADC2 - ADC3Section 14.13.18: ADC register map on page 423
0x4001 1C00 - 0x4001 1FFFSDMMC2Section 30.8.16: SDMMC register map on page 1124
0x4001 1400 - 0x4001 17FFUSART6Section 27.8.12: USART register map on page 950
0x4001 1000 - 0x4001 13FFUSART1
0x4001 0400 - 0x4001 07FFTIM8Section 18.4.26: TIM1 register map on page 603
0x4001 0000 - 0x4001 03FFTIM1
Table 1. STM32F72xxx and STM32F73xxx register boundary addresses (continued)
Boundary addressPeripheralBusRegister map
0x4000 7C00 - 0x4000 7FFFUART8APB1Section 27.8.12: USART register map on page 950
0x4000 7800 - 0x4000 7BFFUART7
0x4000 7400 - 0x4000 77FFDACSection 15.5.15: DAC register map on page 447
0x4000 7000 - 0x4000 73FFPWRSection 4.4.4: PWR power control register 2 (PWR_CSR2) on page 126
0x4000 6400 - 0x4000 67FFCAN1Section 31.9.5: bxCAN register map on page 1165
0x4000 5C00 - 0x4000 5FFFI2C3Section 26.9.12: I2C register map on page 886
0x4000 5800 - 0x4000 5BFFI2C2
0x4000 5400 - 0x4000 57FFI2C1
0x4000 5000 - 0x4000 53FFUART5Section 27.8.12: USART register map on page 950
0x4000 4C00 - 0x4000 4FFFUART4
0x4000 4800 - 0x4000 4BFFUSART3
0x4000 4400 - 0x4000 47FFUSART2
0x4000 3C00 - 0x4000 3FFFSPI3 / I2S3Section 28.9.10: SPI/I2S register map on page 1010
0x4000 3800 - 0x4000 3BFFSPI2 / I2S2Section 23.4.6: IWDG register map on page 772
0x4000 3000 - 0x4000 33FFIWDGSection 24.5.4: WWDG register map on page 778
0x4000 2C00 - 0x4000 2FFFWWDGSection 25.6.21: RTC register map on page 822
0x4000 2800 - 0x4000 2BFFRTC & BKP RegistersSection 22.7.9: LPTIM register map on page 763
0x4000 2400 - 0x4000 27FFLPTIM1Section 20.5.13: TIM10/TIM11/TIM13/TIM14 register map on page 728
0x4000 2000 - 0x4000 23FFTIM14
0x4000 1C00 - 0x4000 1FFFTIM13Section 20.4.14: TIM9/TIM12 register map on page 717
0x4000 1800 - 0x4000 1BFFTIM12Section 21.4.9: TIMx register map on page 742
0x4000 1400 - 0x4000 17FFTIM7
0x4000 1000 - 0x4000 13FFTIM6Section 19.4.24: TIMx register map on page 677
0x4000 0C00 - 0x4000 0FFFTIM5
0x4000 0800 - 0x4000 0BFFTIM4
0x4000 0400 - 0x4000 07FFTIM3
0x4000 0000 - 0x4000 03FFTIM2

1.7 Embedded SRAM

The STM32F72xxx and STM32F73xxx feature:

The embedded SRAM is divided into up to four blocks:

The SRAM1 and SRAM2 can be accessed as bytes, half-words (16 bits) or full words (32 bits). While DTCM and ITCM RAMs can be accessed as bytes, half-words (16 bits), full words (32 bits) or double words (64 bits). These memories can be addressed at maximum system clock frequency without wait state.

The AHB masters support concurrent SRAM accesses (from the USB OTG HS): for instance, the USB OTG HS can read/write from/to SRAM2 while the CPU is reading/writing from/to SRAM1.

1.8 Flash memory overview

The Flash memory interface manages CPU AXI and TCM accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms. It accelerates code execution with ART on TCM interface or L1-Cache on AXIM interface.

The Flash memory is organized as follows:

Refer to Section 3: Embedded Flash memory (FLASH) for more details.

1.9 Boot configuration

In the STM32F72xxx and STM32F73xxx, two different boot areas can be selected through the BOOT pin and the boot base address programmed in the BOOT_ADD0 and BOOT_ADD1 option bytes as shown in the Table 2 .

Table 2. Boot modes

Boot mode selectionBoot area
BOOTBoot address option bytes
0BOOT_ADD0[15:0]Boot address defined by user option byte BOOT_ADD0[15:0]
ST programmed value: Flash on ITCM at 0x0020 0000
1BOOT_ADD1[15:0]Boot address defined by user option byte BOOT_ADD1[15:0]
ST programmed value: System bootloader at 0x0010 0000

The values on the BOOT pin are latched on the 4th rising edge of SYSCLK after reset release. It is up to the user to set the BOOT pin after reset.

The BOOT pin is also resampled when the device exits the Standby mode. Consequently, they must be kept in the required Boot mode configuration when the device is in the Standby mode.

After startup delay, the selection of the boot area is done before releasing the processor reset.

The BOOT_ADD0 and BOOT_ADD1 address option bytes allows to program any boot memory address from 0x0000 0000 to 0x2003 FFFF which includes:

The BOOT_ADD0 / BOOT_ADD1 option bytes can be modified after reset in order to boot from any other boot address after next reset.

If the programmed boot memory address is out of the memory mapped area or a reserved area, the default boot fetch address is programmed as follows:

When flash level 2 protection is enabled, only boot from Flash (on ITCM or AXIM interface) or system bootloader will be available. If the already programmed boot address in the BOOT_ADD0 and/or BOOT_ADD1 option bytes is out of the memory range or RAM address (on ITCM or AXIM) the default fetch will be forced from Flash on ITCM interface at address 0x00200000.

Embedded bootloader

The embedded bootloader code is located in the system memory. It is programmed by ST during production. For full information, refer to the application note (AN2606) STM32 microcontroller system memory boot mode.

By default, when the boot from system bootloader is selected, the code is executed from TCM interface. It could be executed from AXIM interface by reprogramming the BOOT_ADDx address option bytes to 0x1FF0 0000.