Getting Started With STM32CubeH7 for STM32H7 Series MCUs
Getting Started With STM32CubeH7 for STM32H7 Series MCUs
User manual
Introduction
STM32Cube is an STMicroelectronics original initiative to improve designer productivity significantly by reducing development
effort, time, and cost. STM32Cube covers the whole STM32 portfolio.
STM32Cube includes:
• A set of user-friendly software development tools to cover project development from conception to realization, among
which are:
– STM32CubeMX, a graphical software configuration tool that allows the automatic generation of C initialization code
using graphical wizards
– STM32CubeIDE, an all-in-one development tool with peripheral configuration, code generation, code compilation,
and debug features
– STM32CubeCLT, an all-in-one command-line development toolset with code compilation, board programming, and
debug features
– STM32CubeProgrammer (STM32CubeProg), a programming tool available in graphical and command-line
versions
– STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD),
powerful monitoring tools to fine-tune the behavior and performance of STM32 applications in real time
• STM32Cube MCU and MPU Packages, comprehensive embedded-software platforms specific to each microcontroller
and microprocessor series (such as STM32CubeH7 for the STM32H7 series), which include:
– STM32Cube hardware abstraction layer (HAL), ensuring maximized portability across the STM32 portfolio
– STM32Cube low-layer APIs, ensuring the best performance and footprints with a high degree of user control over
hardware
– A consistent set of middleware components such as RTOS, USB Host and Device, TCP/IP, mbedTLS, FAT file
system, audio, and graphics
– All embedded software utilities with full sets of peripheral and applicative examples
• STM32Cube Expansion Packages, which contain embedded software components that complement the functionalities of
the STM32Cube MCU and MPU Packages with:
– Middleware extensions and applicative layers
– Examples running on some specific STMicroelectronics development boards
This user manual describes how to get started with the STM32CubeH7 MCU Package. Section 1: STM32CubeH7 main features
describes the main features of the STM32CubeH7 MCU Package.
Section 2: STM32CubeH7 architecture overview and Section 3: STM32CubeH7 MCU Package overview provide an overview of
the STM32CubeH7 architecture and MCU Package structure.
STM32CubeH7 MCU Package runs on STM32H7 32-bit microcontrollers based on Arm® Cortex®-M processors.
The STM32H7 products come with different lines: mainly single-core lines based on Arm® Cortex®-M7 and dual-
core lines based on an Arm® Cortex®-M7 + Arm® Cortex®-M4 architecture.
Note: Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
STM32CubeH7 contains all generic embedded software components required to develop an application on
STM32H7 microcontrollers in a single package. This set of components is highly portable, not only within the
STM32H7 series but also to other STM32 series.
STM32CubeH7 is fully compatible with STM32CubeMX code generator that allows the user to generate
initialization code. The package includes low-layer (LL) and hardware abstraction layer (HAL) APIs that cover the
microcontroller hardware, together with an extensive set of examples running on STMicroelectronics boards. The
HAL and LL APIs are available in an open-source BSD license for user convenience. They are compliant with
MISRA C®: 2012 guidelines, and have been reviewed with a static analysis tool to eliminate possible runtime
errors. Reports are available on demand.
The STM32CubeH7 MCU Package also contains a set of middleware components with the corresponding
examples. They come with very permissive license terms:
• Full USB host and device stack, supporting many classes:
– Host classes: HID, MSC, CDC, Audio, MTP.
– Device classes: HID, MSC, CDC, Audio, DFU.
• Graphics:
– STemWin, a professional graphical stack solution available in binary format and based on the emWin
solution from STMicroelectronics' partner SEGGER.
– LibJPEG, an open-source implementation on STM32 for JPEG image encoding and decoding.
– TouchGFX, a professional graphical stack solution from STMicroelectronics to create revolutionary
embedded graphical user interfaces (GUIs) with high-end graphics and maximum performance on
energy-efficient STM32 microcontrollers.
• Audio:
– PDM2PCM library, offering a solution to decimate and filter out a pulse density modulated (PDM)
stream from a digital microphone, to convert it to a pulse code modulated (PCM) signal output
stream.
• CMSIS-RTOS implementation with FreeRTOS™ open-source solution. This RTOS solution comes with
dedicated communications primitives (stream buffers and message buffers), allowing to pass data from an
interrupt service routine to a task, or from one core to another in STM32H7 dual-core lines.
• OpenAMP, an AMP framework providing software components that allow the development of software
applications for asymmetric multiprocessing (Arm® Cortex®-M7 and Arm® Cortex®-M4 in STM32H7 dual
lines).
• FAT File system based on the open-source FatFS solution.
• TCP/IP stack based on the open-source LwIP solution.
• SSL/TLS secure layer based on the open-source mbedTLS.
• Network interface:
– STM32_Network_Library provides APIs to access network services on STM32 devices. It supports
several network adapters and protocols required by STM32Cube applications using network services.
Several demonstrations implementing these middleware components are also provided in the STM32CubeH7
MCU Package.
Board Support Package (BSP) Hardware Abstraction Layer (HAL) Low-layer APIs (LL)
HAL APIs
DT46100V2
(1) The set of middleware components depends on the product series.
The STM32CubeH7 firmware solution is built around three independent levels that can easily interact with each
other as described in Figure 2. STM32CubeH7 firmware architecture .
Applications
Level 1
Examples
DT45397V1
HAL
2.1 Level 0
This level is divided into three sub-layers:
• Board support package (BSP)
• Hardware abstraction layer (HAL)
• Low layer drivers
• Basic peripheral usage examples
The BSP is based on a modular architecture allowing an easy porting on any hardware by just implementing the
low level routines.
2.2 Level 1
This level is divided into two sub-layers:
2.3 Level 2
This level is composed of a single layer which is a global real-time and graphical demonstration based on the
middleware service layer, the low level abstraction layer and the basic peripheral usage applications for board-
based features.
Dual core examples and applications follow a dedicated architecture:
• In dual core lines, only one project (one workspace) per example/application is provided. This is to be
compatible with legacy (single core lines) offer.
• Two target projects configuration per workspace (one per core) named STM32YYxx_CM7 and
STM32YYxx_CM4.
• Each target configuration has its own option settings: target device, linker options, RO, RW zones,
preprocessor symbols (CORE_CMx , CORE_CMy) so that user code can be compiled, linked and
programmed separately for each core. The compilation results in 2 binaries: CM7 binary and CM4 binary.
Macro defined in
STM32H7 part numbers
stm32h7xx.h
1. STM32H745xx, STM32H747xx, STM32H755xx, and STM32H757xx are dual core devices. When using these devices,
either CORE_CM7 or CORE_CM4 (depending of the target core configuration) shall be added into the compiler
preprocessor.
The STM32CubeH7 features a rich set of examples and demonstrations at all levels making it easy to understand
and use any HAL driver and/or middleware components. These examples can be run on any of the
STMicroelectronics boards as listed in Table 2. Evaluation, Discovery and Nucleo boards for STM32H7 Series :
STM32H743I-EVAL
STM32H743xx, STM32H753xx and STM32H750xx (1)
NUCLEO-H743ZI
NUCLEO-H745ZI-Q STM32H745xx and STM32H755xx
STM32H745I-DISCO STM32H745xx and STM32H755xx
STM32H747I-DISCO STM32H747xx and STM32H757xx
STM32H747I-EVAL STM32H747xx and STM32H757xx
STM32H750B-DK STM32H750xx
STM32H7B3I-EVAL
STM32H7B3xxQ and STM32H7B0xxQ(2)
STM32H7B3I-DK
NUCLEO-H7A3ZI-Q STM32H7A3xxQ
NUCLEO-H723ZG STM32H723xx
1. The STM32H750xx belong to STM32H750 Value line. They feature only 128 Kbytes of internal Flash memory. These
devices are intended for code execution from external memories. Dedicated applications are available under
Projects\STM32H743I-EVAL\Applications\ExtMem_CodeExecution
2. STM32H7B0xx devices belong to STM32H7B0 Value Line. They feature only 128 Kbytes of internal Flash memory. They
are intended for code execution from external memories. Dedicated applications are available under Projects
\STM32H7B3I-DK\Applications\ExtMem_CodeExecution.
3. STM32H730xx devices belong to STM32H730 Value Line. They feature only 128 Kbytes of internal Flash memory and are
intended for code execution from external memories. Dedicated applications are available under Projects \STM32H735G-
DK\Applications\ExtMem_CodeExecution.
The STM32CubeH7 MCU Package can run on any compatible hardware. Simply update the BSP drivers to port
the provided examples on the user board if its hardware features are the same (LED, LCD display, pushbuttons).
Set of examples
organized by board
and provided with
preconfigured
projects.
DT45398V3
For each board, a set of examples is provided with preconfigured projects for EWARM, MDK-ARM, and
STM32CubeIDE toolchains.
Figure 6. STM32CubeH7 example overview shows the project structure for the STM32H743I-EVAL board. The
structure is identical for other boards.
DT73654V1
The examples are classified depending on the STM32Cube level they apply to, and are named as follows:
• Examples in level 0 are called Examples. They use the HAL drivers without any middleware component.
• Examples in level 1 are called Applications. They provide typical use cases of each middleware
component.
• Examples in level 2 are called Demonstration. They implement all the HAL, BSP, and middleware
components.
Template projects (HAL and LL) are provided to allow the user to quickly build any firmware application on a given
board.
For single core boards (STM32H43I-EVAl, STM32H7B3I-EVAL, STM32H7B3I-DK, STM32H735G-DK, NUCLEO-
H7A3ZI-Q, NUCLEO-H743ZI, and NUCLEO-H723ZG): one HAL and one LL template project.
For dual core boards (NUCLEO-H745ZI-Q, STM32H745I-DISCO, STM32H747I-DISCO, and STM32H747I-
EVAL):
• One LL template project
For STM32H7B0xx and STM32H730xx Value line devices based on the STM32H7B3I-DK and STM32H735G-DK
boards, respectively, ExtMem_CodeExecution applications are provided with two subapplications:
• ExtMem_Boot: reference boot code executing from internal flash memory, enabling to configure external
memories, then jumping to the user application located in an external memory. Two use cases are possible:
XiP and boot ROM.
– XiP: this use case is intended for eXecution in Place from external flash memory (octo-SPI). The user
application code shall be linked to the target execution memory address (external octo-SPI NOR
flash memory).
– Boot ROM: this use case is intended to demonstrate how to boot from internal flash memory,
configure the external RAM (FMC-SDRAM for STM32H7B3I-DK and octo-SPI HyperRAM for
STM43H735G-DK), copy the user application binary from the micro-SD memory or from the octo-SPI
flash memory to the external SDRAM/HyperRAM, and then jump to the user application. The user
application code shall be linked to the target execution memory address (external SDRAM/
HyperRAM).
• ExtMem_Application: two subprojects are provided (LedToggling and FreeRTOS™) with execution from
external memory.
– XiP from octo-SPI flash memory, data stored in external RAM (SDRAM on STM32H7B3I-DK or
HyperRAM on STM32H735G-DK).
– XiP from octo-SPI flash memory, data stored in internal SRAM.
– Boot ROM: execution from external SDRAM, data stored in internal SRAM.
Single core examples have the same structure:
• \Inc folder that contains all header files.
• \Src folder for the source code.
• \EWARM, \MDK-ARM, and \STM32CubeIDE folders contain the preconfigured project for each toolchain.
• readme.txt describing the example behavior and the environment required to make it work.
All dual-core examples have the same structure:
• Two separate folders CM4 and CM7 respectively for Arm® Cortex®-M4 and Arm® Cortex®-M7;
• Each folder (CM4 and CM7) provides:
– \Inc folder that contains all header files for Arm® Cortex®-M4/M7.
– \Src folder for the source code files for Arm® Cortex®-M4/M7.
• A \common folder with \Inc and \Src containing the common header and source files for both cores.
• \EWARM, \MDK-ARM, and \STM32CubeIDE folders contain the preconfigured project for each toolchain
(both Arm® Cortex®-M4 and Arm® Cortex®-M7 target configurations).
DT62384V2
Table 3 provides the number of examples, applications, and demonstrations available for each board.
NUCLEO-
1 1 79 4 - 6 1
H743ZI
NUCLEO-
1 4 21 - - 2 1
H745ZI-Q
STM32H743I-
1 1 135 - - 54 1
EVAL
STM32H745I-
1 4 40 - - 13 1
DISCO
STM32H747I-
1 4 51 - - 17 4
DISCO
STM32H747I-
1 4 61 - - 27 4
EVAL
STM32H750B
- 2 13 - - 7 1
-DK
STM32H7B3I
1 1 70 - - 13 1
-EVAL
STM32H7B3I
1 1 34 1 1 17 1
-DK
NUCLEO-
1 1 53 13 3 13 1
H7A3ZI-Q
STM32H735
1 1 52 1 1 19 1
G-DK
NUCLEO-
1 1 38 33 3 10 1
H723ZG
Note: • The principle of the STM32H750xx Value line applications is to execute the user application from an
external memory (Quad-SPI Flash memory or SDRAM, by default Quad-SPI Flash memory). The
Templates\ExtMem_Boot projects enables to boot from the STM32H750xx internal Flash memory,
configure external memories, and then jump to the user application located in an external memory of the
STM32H750B-DK board.
• The principle of the STM32H7B0xx Value line applications is to execute the user application from an
external memory (Octo-SPI Flash memory or SDRAM, by default Octo-SPI Flash memory). The
STM32H7B3I-DK\Applications\ExtMem_CodeExecution\ExtMem_Boot project enables to boot from the
STM32H7B0xx internal Flash memory, configure external memories, and then jump to the user
application located in an external memory of the STM32H7B3I-DK board.
• The principle of the STM32H730xx Value line applications is to execute the user application from an
external memory (Octo-SPI Flash memory or Octo-SPI HyperRAM, by default Octo-SPI Flash memory).
The STM32H735G-DK\Applications\ExtMem_CodeExecution\ExtMem_Boot project enables to boot from
the STM32H730xx internal Flash memory, configure external memories, and then jump to the user
application located in an external memory of the STM32H735G-DK board.
The following section provides a quick overview on how to open, build and run an example with the supported
toolchains.
• EWARM
1. Under the example folder, open the \\EWARM subfolder.
2. Open the Project.eww workspace. The workspace name may change from one example to another.
3. Rebuild all files: Project->Rebuild all.
4. Load project image: Project->Debug.
5. Run program: Debug->Go(F5).
• MDK-ARM
1. Under the example folder, open the \\MDK-ARM subfolder.
2. Open the Project.uvproj workspace. The workspace name may change from one example to another.
3. Rebuild all files: Project->Rebuild all target files.
4. Load project image: Debug->Start/Stop Debug Session.
5. Run program: Debug->Run (F5).
• STM32CubeIDE
1. Open the STM32CubeIDE toolchain.
2. Click File->Switch Workspace->Other and browse to the STM32CubeIDE workspace directory.
3. Click File->Import, select General->'Existing Projects into Workspace' and then click “Next.
4. Browse to the STM32CubeIDE workspace directory and select the project.
5. Rebuild all project files: select the project in the “Project explorer” window then click on Project->build
project menu.
Note: STM32CubeIDE projects are provided only for STM32H7B3I-EVAL, STM32H7B3I-DK, STM32H735G-DK,
NUCLEO-H7A3ZI-Q and NUCLEO-H723ZG boards
6. Peripheral initialization
a. Start by writing the peripheral HAL_PPP_MspInit function. For this function, proceed as follows:
◦ Enable the peripheral clock.
◦ Configure the peripheral GPIOs.
◦ Configure DMA channel and enable DMA interrupt (if needed).
◦ Enable peripheral interrupt (if needed).
b. Edit the stm32h7xx_it.c to call the required interrupt handlers (peripheral and DMA), if needed.
c. Write process complete callback functions if you plan to use peripheral interrupt or DMA.
d. In your main.c file, initialize the peripheral handle structure, then call the function HAL_PPP_Init() to
initialize your peripheral.
7. Develop your application process: at this stage, your system is ready and you can start developing your
application code.
a. The HAL provides intuitive and ready-to-use APIs for configuring the peripheral, and supports polling,
interrupt and DMA programming models, to accommodate any application requirements. For more details
on how to use each peripheral, refer to the rich examples set provided.
b. If your application has some real-time constraints, you can find a large set of examples showing how to
use FreeRTOS and integrate it with all middleware stacks provided within STM32CubeH7, it can be a good
starting point for your development.
Note: In the default HAL implementation, the SysTick timer is the timebase source. It is used to generate interrupts at
regular time intervals. If HAL_Delay() is called from peripheral ISR process, the SysTick interrupt must have
higher priority (numerically lower) than the peripheral interrupt. Otherwise, the caller ISR process is blocked.
Functions affecting timebase configurations are declared as __Weak to make override possible in case of other
implementations in user file (using a general purpose timer for example or other time source). For more details
please refer to HAL_TimeBase example.
4.2.2 LL application
This section describes the steps needed to create your own LL application using STM32CubeH7.
1. Create your project
To create a new project you either start from the Templates_LL project provided for each board under
\Projects\\Templates_LL or from any available project under \Projects\\Examples_LL ( refer to the board name,
such as NUCLEO-H743ZI). The Template project provides an empty main loop function, however it is a good
starting point to get familiar with project settings for STM32CubeH7.
The Template main characteristics are the following:
– It contains the source codes of the LL and CMSIS drivers which are the minimal components needed to
develop code on a given board.
– It contains the include paths for all the required firmware components.
– It selects the supported STM32H7 device and allows to configure the CMSIS and LL drivers accordingly.
– It provides ready-to-use user files, that are pre-configured as follows:
main.c: system clock configuration for maximum frequency.
5 FAQs
Does the HAL take benefit from interrupts or DMA? How can this be controlled?
Yes. The HAL supports three API programming models: polling, interrupt and DMA (with or without interrupt
generation).
Does the HAL/LL drivers support all STM32H7 lines single core, dual core and value line ?
Yes the HAL/LL drivers support all the STM32H7 lines:
• “DUAL_CORE” define is used to delimit code (defines , functions, macros.. ) available only in dual core
line. This define is automatically available when user defines the right macro in stm32h7xx.h (see
Table 1. Macros for STM32H7 Series).
• “CORE_CM4” or “CORE_CM7” defines are respectively used to delimit configuration/code specific to
Cortex®‑M4/Cortex®-M7 core. It shall be added by user into compiler preprocessor symbols for each target
configuration (see Section 2.3: section "2.3 Level 2").
• Value line devices (STM32H750xx) are treated like single core devices.
Make sure to compile and build both Cortex®-M7 and Cortex®-M4 targets, then load the corresponding images
into the the STM32H7 dual core device. Please refer to the readme.txt for each example.
What are the considerations to run a Value line example (STM32H750xx on STM32H750B-DK board,
STM32H7B0xx on STM32H7B3I-DK/STM32H7B3I-EVAL board, and STM32H730xx on STM32H735G-DK):
Make sure to compile, build and load the ExtMem_Boot into the internal Flash memory. Make sure that the target
external memory example (RAM/ROM) configuration is properly set in the ExtMem_Boot project memory.h file
(DATA_AREA/CODE_AREA). Make sure to compile, build and load the application into the external memory. For
more details please refer to the readme.txt of the STM32H750B-DK board ExtMem_Boot and Template_Project
templates.
Revision history
Table 4. Document revision history
21-Jun-2018 3 Changed STM32H743I_EVAL into STM32H743I-EVAL in the whole document when referring to the
board name.
Added STM32H750xx part numbers in Table 1 Macros for STM32H7 Series and Table 2 Evaluation,
Discovery and Nucleo boards for STM32H7 Series.
Updated number of STM32H743I-EVAL examples in Section 3.2 and Section 5 FAQs.
03-Jul-2018 4 Updated Figure 2 STM32CubeH7 firmware components.
Major update consisting in the introduction of the low-layer (LL) API and affecting all sections of the
03-Apr-2019 5
document.
Updated Section Introduction.
Replaced QSPI Flash memory by Quad-SPI Flash memory.
12-Nov-2019 6
Added support for STM32H7A3/B3 devices through STM32H7B3I-EVAL, STM32H7B3I-DK and
NUCLEO-H7A3ZI-Q boards.
Added STM32H723xx, STM32H733xx, STM32H725xx, STM32H735 and STM32H730xx part
numbers in Table 1. Macros for STM32H7 Series.
Added NUCLEO-H723ZG and STM32H735G-DK in Table 2. Evaluation, Discovery and Nucleo
boards for STM32H7 Series.
Section 3.2: MCU Package overview:
• Added STM32H735G-DK and NUCLEO-H723ZG to the list of boards for which projects for
SW4STM32 toolchain are not provided, to the list of boards for which template projects are
available, and to Figure 5. STM32CubeH7 MCU Package structure.
28-Apr-2020 7 • Added STM32H730 Value line to the paragraph related to ExtMem_CodeExecution
applications.
• Updated Table 3. Number of examples available for each board.
Section 4.1: Running your first example:
• Added note related to STM32H730xx Value line applications.
• Added STM32H735G-DK and NUCLEO-H723ZG to the list of boards for which
STM32CubeIDE projects are provided.
UpdatedSection 4.4: Getting STM32CubeH7 release updates.
Updated Section 5: FAQs.
Updated:
• Document title.
• Introduction.
• Figure 1. STM32CubeH7 firmware components.
• Section 3.2: MCU Package overview.
21-Dec-2023 8
• Figure 5. STM32CubeH7 MCU Package structure.
• Figure 6. STM32CubeH7 example overview.
• Figure 7. Dual core example structure.
• Section 4.1: Running your first example.
Removed all references to SW4STM32 and replaced them with STM32CubeIDE.
Contents
1 STM32CubeH7 main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 STM32CubeH7 architecture overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Level 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Board support package (BSP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.2 Hardware abstraction layer (HAL) and low-layer (LL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.3 Basic peripheral usage examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Level 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1 Middleware components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 Examples based on the middleware components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Level 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 STM32CubeH7 MCU Package overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1 Supported STM32H7 devices and hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 MCU Package overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Getting started with STM32CubeH7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
4.1 Running your first example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2 Developing your own application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2.1 HAL application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2.2 LL application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3 Using STM32CubeMX to generate the initialization C code . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4 Getting STM32CubeH7 release updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5 FAQs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
List of tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
List of figures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
List of tables
Table 1. Macros for STM32H7 Series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Table 2. Evaluation, Discovery and Nucleo boards for STM32H7 Series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Table 3. Number of examples available for each board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Table 4. Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
List of figures
Figure 1. STM32CubeH7 firmware components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figure 2. STM32CubeH7 firmware architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figure 3. Dual core project architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Figure 4. Dual core project linker file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Figure 5. STM32CubeH7 MCU Package structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Figure 6. STM32CubeH7 example overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Figure 7. Dual core example structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15