Skip to content

Commit 114fd72

Browse files
committed
variant(h7): add Nucleo-H745ZI-Q support
Fixes #2090 Signed-off-by: Aymane Bahssain <aymane.bahssain@st.com>
1 parent 60888f1 commit 114fd72

File tree

8 files changed

+924
-3
lines changed

8 files changed

+924
-3
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
115115
| :green_heart: | STM32H563ZI | [Nucleo H563ZI](https://www.st.com/en/evaluation-tools/nucleo-h563zi.html) | *2.6.0* | |
116116
| :green_heart: | STM32H723ZG | [Nucleo H723ZG](https://www.st.com/en/evaluation-tools/nucleo-h723zg.html) | *2.4.0* | |
117117
| :green_heart: | STM32H743ZI | [Nucleo H743ZI(2)](https://www.st.com/en/evaluation-tools/nucleo-h743zi.html) | *1.5.0* | Nucleo H743ZI2 since 1.6.0 |
118+
| :yellow_heart: | STM32H745ZI-Q | [Nucleo-H745ZI-Q](https://www.st.com/en/evaluation-tools/nucleo-h745zi-q.html) | **2.12.0** | |
118119
| :green_heart: | STM32H753ZI | [Nucleo H753ZI](https://www.st.com/en/evaluation-tools/nucleo-h753zi.html) | *2.7.0* | |
119120
| :green_heart: | STM32H7A3ZITxQ | [NUCLEO-H7A3ZI-Q](https://www.st.com/en/evaluation-tools/nucleo-h7a3zi-q.html) | *2.10.0* | |
120121
| :green_heart: | STM32L496ZG | [Nucleo L496ZG](http://www.st.com/en/evaluation-tools/nucleo-l496zg.html) | *1.3.0* | |

boards.txt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,24 @@ Nucleo_144.menu.pnum.NUCLEO_H743ZI2.build.variant_h=variant_NUCLEO_H743ZI.h
257257
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.openocd.target=stm32h7x
258258
Nucleo_144.menu.pnum.NUCLEO_H743ZI2.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H743.svd
259259

260+
# NUCLEO_H745ZI_Q board
261+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q=Nucleo H745ZI-Q
262+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.node=NODE_H743ZIQ
263+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.upload.maximum_size=2097152
264+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.upload.maximum_data_size=884736
265+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.build.mcu=cortex-m7
266+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.build.fpu=-mfpu=fpv4-sp-d16
267+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.build.float-abi=-mfloat-abi=hard
268+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.build.st_extra_flags=-D{build.product_line} {build.enable_usb} {build.xSerial} -DCORE_CM7
269+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.build.board=NUCLEO_H745ZI_Q
270+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.build.series=STM32H7xx
271+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.build.product_line=STM32H745xx
272+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.build.variant=STM32H7xx/H745Z(G-I)T_H755ZIT
273+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.build.variant_h=variant_NUCLEO_H745ZI_Q.h
274+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.openocd.target=stm32h7x
275+
Nucleo_144.menu.pnum.NUCLEO_H745ZI_Q.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H745_CM7.svd
276+
277+
260278
# NUCLEO_H753ZI board
261279
Nucleo_144.menu.pnum.NUCLEO_H753ZI=Nucleo H753ZI
262280
Nucleo_144.menu.pnum.NUCLEO_H753ZI.node=NODE_H753ZI
@@ -9830,6 +9848,15 @@ GenH7.menu.pnum.GENERIC_H745XIHX.build.product_line=STM32H745xx
98309848
GenH7.menu.pnum.GENERIC_H745XIHX.build.variant=STM32H7xx/H742X(G-I)H_H743X(G-I)H_H745X(G-I)H_H747X(G-I)H_H750XBH_H753XIH_H755XIH_H757XIH
98319849
GenH7.menu.pnum.GENERIC_H745XIHX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H745_CM7.svd
98329850

9851+
# Generic H745ZITx
9852+
GenH7.menu.pnum.GENERIC_H745ZITX=Generic H745ZITx
9853+
GenH7.menu.pnum.GENERIC_H745ZITX.upload.maximum_size=2097152
9854+
GenH7.menu.pnum.GENERIC_H745ZITX.upload.maximum_data_size=884736
9855+
GenH7.menu.pnum.GENERIC_H745ZITX.build.board=GENERIC_H745ZITX
9856+
GenH7.menu.pnum.GENERIC_H745ZITX.build.product_line=STM32H745xx
9857+
GenH7.menu.pnum.GENERIC_H745ZITX.build.variant=STM32H7xx/H745Z(G-I)T_H755ZIT
9858+
GenH7.menu.pnum.GENERIC_H745ZITX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H745_CM7.svd
9859+
98339860
# Generic H747AGIx
98349861
GenH7.menu.pnum.GENERIC_H747AGIX=Generic H747AGIx
98359862
GenH7.menu.pnum.GENERIC_H747AGIX.upload.maximum_size=1048576

cmake/boards_db.cmake

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81022,6 +81022,88 @@ target_compile_options(GENERIC_H745XIHX_xusb_HSFS INTERFACE
8102281022
"SHELL:-DUSE_USB_HS -DUSE_USB_HS_IN_FS"
8102381023
)
8102481024

81025+
# GENERIC_H745ZITX
81026+
# -----------------------------------------------------------------------------
81027+
81028+
set(GENERIC_H745ZITX_VARIANT_PATH "${CMAKE_CURRENT_LIST_DIR}/../variants/STM32H7xx/H745Z(G-I)T_H755ZIT")
81029+
set(GENERIC_H745ZITX_MAXSIZE 2097152)
81030+
set(GENERIC_H745ZITX_MAXDATASIZE 884736)
81031+
set(GENERIC_H745ZITX_MCU cortex-m7)
81032+
set(GENERIC_H745ZITX_FPCONF "-")
81033+
add_library(GENERIC_H745ZITX INTERFACE)
81034+
target_compile_options(GENERIC_H745ZITX INTERFACE
81035+
"SHELL:-DCORE_CM7 -DSTM32H745xx"
81036+
"SHELL:"
81037+
"SHELL:"
81038+
"SHELL:-mfpu=fpv4-sp-d16 -mfloat-abi=hard"
81039+
-mcpu=${GENERIC_H745ZITX_MCU}
81040+
)
81041+
target_compile_definitions(GENERIC_H745ZITX INTERFACE
81042+
"STM32H7xx"
81043+
"ARDUINO_GENERIC_H745ZITX"
81044+
"BOARD_NAME=\"GENERIC_H745ZITX\""
81045+
"BOARD_ID=GENERIC_H745ZITX"
81046+
"VARIANT_H=\"variant_generic.h\""
81047+
)
81048+
target_include_directories(GENERIC_H745ZITX INTERFACE
81049+
${CMAKE_CURRENT_LIST_DIR}/../system/STM32H7xx
81050+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32H7xx_HAL_Driver/Inc
81051+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32H7xx_HAL_Driver/Src
81052+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32H7xx/Include/
81053+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32H7xx/Source/Templates/gcc/
81054+
${GENERIC_H745ZITX_VARIANT_PATH}
81055+
)
81056+
81057+
target_link_options(GENERIC_H745ZITX INTERFACE
81058+
"LINKER:--default-script=${GENERIC_H745ZITX_VARIANT_PATH}/ldscript.ld"
81059+
"LINKER:--defsym=LD_FLASH_OFFSET=0x0"
81060+
"LINKER:--defsym=LD_MAX_SIZE=2097152"
81061+
"LINKER:--defsym=LD_MAX_DATA_SIZE=884736"
81062+
"SHELL:-mfpu=fpv4-sp-d16 -mfloat-abi=hard"
81063+
-mcpu=${GENERIC_H745ZITX_MCU}
81064+
)
81065+
81066+
add_library(GENERIC_H745ZITX_serial_disabled INTERFACE)
81067+
target_compile_options(GENERIC_H745ZITX_serial_disabled INTERFACE
81068+
"SHELL:"
81069+
)
81070+
add_library(GENERIC_H745ZITX_serial_generic INTERFACE)
81071+
target_compile_options(GENERIC_H745ZITX_serial_generic INTERFACE
81072+
"SHELL:-DHAL_UART_MODULE_ENABLED"
81073+
)
81074+
add_library(GENERIC_H745ZITX_serial_none INTERFACE)
81075+
target_compile_options(GENERIC_H745ZITX_serial_none INTERFACE
81076+
"SHELL:-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE"
81077+
)
81078+
add_library(GENERIC_H745ZITX_usb_CDC INTERFACE)
81079+
target_compile_options(GENERIC_H745ZITX_usb_CDC INTERFACE
81080+
"SHELL:-DUSBCON -DUSBD_VID=0x0483 -DUSBD_PID=0x5740 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB"
81081+
)
81082+
add_library(GENERIC_H745ZITX_usb_CDCgen INTERFACE)
81083+
target_compile_options(GENERIC_H745ZITX_usb_CDCgen INTERFACE
81084+
"SHELL:-DUSBCON -DUSBD_VID=0x0483 -DUSBD_PID=0x5740 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC"
81085+
)
81086+
add_library(GENERIC_H745ZITX_usb_HID INTERFACE)
81087+
target_compile_options(GENERIC_H745ZITX_usb_HID INTERFACE
81088+
"SHELL:-DUSBCON -DUSBD_VID=0x0483 -DUSBD_PID=0x5740 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_HID_COMPOSITE"
81089+
)
81090+
add_library(GENERIC_H745ZITX_usb_none INTERFACE)
81091+
target_compile_options(GENERIC_H745ZITX_usb_none INTERFACE
81092+
"SHELL:"
81093+
)
81094+
add_library(GENERIC_H745ZITX_xusb_FS INTERFACE)
81095+
target_compile_options(GENERIC_H745ZITX_xusb_FS INTERFACE
81096+
"SHELL:"
81097+
)
81098+
add_library(GENERIC_H745ZITX_xusb_HS INTERFACE)
81099+
target_compile_options(GENERIC_H745ZITX_xusb_HS INTERFACE
81100+
"SHELL:-DUSE_USB_HS"
81101+
)
81102+
add_library(GENERIC_H745ZITX_xusb_HSFS INTERFACE)
81103+
target_compile_options(GENERIC_H745ZITX_xusb_HSFS INTERFACE
81104+
"SHELL:-DUSE_USB_HS -DUSE_USB_HS_IN_FS"
81105+
)
81106+
8102581107
# GENERIC_H747AGIX
8102681108
# -----------------------------------------------------------------------------
8102781109

@@ -112956,6 +113038,88 @@ target_compile_options(NUCLEO_H743ZI2_xusb_HSFS INTERFACE
112956113038
"SHELL:-DUSE_USB_HS -DUSE_USB_HS_IN_FS"
112957113039
)
112958113040

113041+
# NUCLEO_H745ZI_Q
113042+
# -----------------------------------------------------------------------------
113043+
113044+
set(NUCLEO_H745ZI_Q_VARIANT_PATH "${CMAKE_CURRENT_LIST_DIR}/../variants/STM32H7xx/H745Z(G-I)T_H755ZIT")
113045+
set(NUCLEO_H745ZI_Q_MAXSIZE 2097152)
113046+
set(NUCLEO_H745ZI_Q_MAXDATASIZE 884736)
113047+
set(NUCLEO_H745ZI_Q_MCU cortex-m7)
113048+
set(NUCLEO_H745ZI_Q_FPCONF "fpv4-sp-d16-hard")
113049+
add_library(NUCLEO_H745ZI_Q INTERFACE)
113050+
target_compile_options(NUCLEO_H745ZI_Q INTERFACE
113051+
"SHELL:-DSTM32H745xx -DCORE_CM7"
113052+
"SHELL:"
113053+
"SHELL:"
113054+
"SHELL:-mfpu=fpv4-sp-d16 -mfloat-abi=hard"
113055+
-mcpu=${NUCLEO_H745ZI_Q_MCU}
113056+
)
113057+
target_compile_definitions(NUCLEO_H745ZI_Q INTERFACE
113058+
"STM32H7xx"
113059+
"ARDUINO_NUCLEO_H745ZI_Q"
113060+
"BOARD_NAME=\"NUCLEO_H745ZI_Q\""
113061+
"BOARD_ID=NUCLEO_H745ZI_Q"
113062+
"VARIANT_H=\"variant_NUCLEO_H745ZI_Q.h\""
113063+
)
113064+
target_include_directories(NUCLEO_H745ZI_Q INTERFACE
113065+
${CMAKE_CURRENT_LIST_DIR}/../system/STM32H7xx
113066+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32H7xx_HAL_Driver/Inc
113067+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/STM32H7xx_HAL_Driver/Src
113068+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32H7xx/Include/
113069+
${CMAKE_CURRENT_LIST_DIR}/../system/Drivers/CMSIS/Device/ST/STM32H7xx/Source/Templates/gcc/
113070+
${NUCLEO_H745ZI_Q_VARIANT_PATH}
113071+
)
113072+
113073+
target_link_options(NUCLEO_H745ZI_Q INTERFACE
113074+
"LINKER:--default-script=${NUCLEO_H745ZI_Q_VARIANT_PATH}/ldscript.ld"
113075+
"LINKER:--defsym=LD_FLASH_OFFSET=0x0"
113076+
"LINKER:--defsym=LD_MAX_SIZE=2097152"
113077+
"LINKER:--defsym=LD_MAX_DATA_SIZE=884736"
113078+
"SHELL:-mfpu=fpv4-sp-d16 -mfloat-abi=hard"
113079+
-mcpu=${NUCLEO_H745ZI_Q_MCU}
113080+
)
113081+
113082+
add_library(NUCLEO_H745ZI_Q_serial_disabled INTERFACE)
113083+
target_compile_options(NUCLEO_H745ZI_Q_serial_disabled INTERFACE
113084+
"SHELL:"
113085+
)
113086+
add_library(NUCLEO_H745ZI_Q_serial_generic INTERFACE)
113087+
target_compile_options(NUCLEO_H745ZI_Q_serial_generic INTERFACE
113088+
"SHELL:-DHAL_UART_MODULE_ENABLED"
113089+
)
113090+
add_library(NUCLEO_H745ZI_Q_serial_none INTERFACE)
113091+
target_compile_options(NUCLEO_H745ZI_Q_serial_none INTERFACE
113092+
"SHELL:-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE"
113093+
)
113094+
add_library(NUCLEO_H745ZI_Q_usb_CDC INTERFACE)
113095+
target_compile_options(NUCLEO_H745ZI_Q_usb_CDC INTERFACE
113096+
"SHELL:-DUSBCON -DUSBD_VID=0x0483 -DUSBD_PID=0x5740 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB"
113097+
)
113098+
add_library(NUCLEO_H745ZI_Q_usb_CDCgen INTERFACE)
113099+
target_compile_options(NUCLEO_H745ZI_Q_usb_CDCgen INTERFACE
113100+
"SHELL:-DUSBCON -DUSBD_VID=0x0483 -DUSBD_PID=0x5740 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC"
113101+
)
113102+
add_library(NUCLEO_H745ZI_Q_usb_HID INTERFACE)
113103+
target_compile_options(NUCLEO_H745ZI_Q_usb_HID INTERFACE
113104+
"SHELL:-DUSBCON -DUSBD_VID=0x0483 -DUSBD_PID=0x5740 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_HID_COMPOSITE"
113105+
)
113106+
add_library(NUCLEO_H745ZI_Q_usb_none INTERFACE)
113107+
target_compile_options(NUCLEO_H745ZI_Q_usb_none INTERFACE
113108+
"SHELL:"
113109+
)
113110+
add_library(NUCLEO_H745ZI_Q_xusb_FS INTERFACE)
113111+
target_compile_options(NUCLEO_H745ZI_Q_xusb_FS INTERFACE
113112+
"SHELL:"
113113+
)
113114+
add_library(NUCLEO_H745ZI_Q_xusb_HS INTERFACE)
113115+
target_compile_options(NUCLEO_H745ZI_Q_xusb_HS INTERFACE
113116+
"SHELL:-DUSE_USB_HS"
113117+
)
113118+
add_library(NUCLEO_H745ZI_Q_xusb_HSFS INTERFACE)
113119+
target_compile_options(NUCLEO_H745ZI_Q_xusb_HSFS INTERFACE
113120+
"SHELL:-DUSE_USB_HS -DUSE_USB_HS_IN_FS"
113121+
)
113122+
112959113123
# NUCLEO_H753ZI
112960113124
# -----------------------------------------------------------------------------
112961113125

variants/STM32H7xx/H745Z(G-I)T_H755ZIT/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ add_library(variant_bin STATIC EXCLUDE_FROM_ALL
2222
generic_clock.c
2323
PeripheralPins.c
2424
variant_generic.cpp
25+
variant_NUCLEO_H745ZI_Q.cpp
2526
)
2627
target_link_libraries(variant_bin PUBLIC variant_usage)
2728

variants/STM32H7xx/H745Z(G-I)T_H755ZIT/generic_clock.c

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
*******************************************************************************
3-
* Copyright (c) 2020-2021, STMicroelectronics
3+
* Copyright (c) 2025, STMicroelectronics
44
* All rights reserved.
55
*
66
* This software component is licensed by ST under BSD 3-Clause license,
@@ -21,8 +21,55 @@
2121
*/
2222
WEAK void SystemClock_Config(void)
2323
{
24-
/* SystemClock_Config can be generated by STM32CubeMX */
25-
#warning "SystemClock_Config() is empty. Default clock at reset is used."
24+
25+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
26+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
27+
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {};
28+
29+
/** Supply configuration update enable
30+
*/
31+
HAL_PWREx_ConfigSupply(PWR_DIRECT_SMPS_SUPPLY);
32+
33+
/** Configure the main internal regulator output voltage
34+
*/
35+
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
36+
37+
while (!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
38+
39+
/** Initializes the RCC Oscillators according to the specified parameters
40+
* in the RCC_OscInitTypeDef structure.
41+
*/
42+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48 | RCC_OSCILLATORTYPE_HSI;
43+
RCC_OscInitStruct.HSIState = RCC_HSI_DIV1;
44+
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
45+
RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
46+
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
47+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
48+
Error_Handler();
49+
}
50+
51+
/** Initializes the CPU, AHB and APB buses clocks
52+
*/
53+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
54+
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2
55+
| RCC_CLOCKTYPE_D3PCLK1 | RCC_CLOCKTYPE_D1PCLK1;
56+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
57+
RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
58+
RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV1;
59+
RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV1;
60+
RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV1;
61+
RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV1;
62+
RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV1;
63+
64+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) {
65+
Error_Handler();
66+
}
67+
68+
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
69+
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_HSI48;
70+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {
71+
Error_Handler();
72+
}
2673
}
2774

2875
#endif /* ARDUINO_GENERIC_* */

0 commit comments

Comments
 (0)