Skip to content

Commit a229ae1

Browse files
committed
variant(h7): add generic H745Z(G-I)T and H755ZIT
Signed-off-by: Aymane Bahssain <aymane.bahssain@st.com>
1 parent 60888f1 commit a229ae1

File tree

4 files changed

+255
-3
lines changed

4 files changed

+255
-3
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
610610
| :green_heart: | STM32H743XG<br>STM32H743XI | Generic Board | *2.7.0* | |
611611
| :green_heart: | STM32H743ZG<br>STM32H743ZI | Generic Board | *2.0.0* | |
612612
| :green_heart: | STM32H745XG<br>STM32H745XI | Generic Board | *2.7.0* | |
613+
| :yellow_heart: | STM32H745ZG<br>STM32H745ZI | Generic Board | **2.12.0** | |
613614
| :green_heart: | STM32H747AG<br>STM32H747AI | Generic Board | *2.0.0* | |
614615
| :green_heart: | STM32H747IG<br>STM32H747II | Generic Board | *2.0.0* | |
615616
| :green_heart: | STM32H747XG<br>STM32H747XI | Generic Board | *2.7.0* | |
@@ -626,6 +627,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
626627
| :green_heart: | STM32H753XI | Generic Board | *2.7.0* | |
627628
| :green_heart: | STM32H753ZI | Generic Board | *2.0.0* | |
628629
| :green_heart: | STM32H755XI | Generic Board | *2.7.0* | |
630+
| :yellow_heart: | STM32H755ZI | Generic Board | **2.12.0** | |
629631
| :green_heart: | STM32H757AI | Generic Board | *2.0.0* | |
630632
| :green_heart: | STM32H757II | Generic Board | *2.0.0* | |
631633
| :green_heart: | STM32H757XI | Generic Board | *2.7.0* | |

boards.txt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9830,6 +9830,24 @@ GenH7.menu.pnum.GENERIC_H745XIHX.build.product_line=STM32H745xx
98309830
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
98319831
GenH7.menu.pnum.GENERIC_H745XIHX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H745_CM7.svd
98329832

9833+
# Generic H745ZGTx
9834+
GenH7.menu.pnum.GENERIC_H745ZGTX=Generic H745ZGTx
9835+
GenH7.menu.pnum.GENERIC_H745ZGTX.upload.maximum_size=1048576
9836+
GenH7.menu.pnum.GENERIC_H745ZGTX.upload.maximum_data_size=884736
9837+
GenH7.menu.pnum.GENERIC_H745ZGTX.build.board=GENERIC_H745ZGTX
9838+
GenH7.menu.pnum.GENERIC_H745ZGTX.build.product_line=STM32H745xG
9839+
GenH7.menu.pnum.GENERIC_H745ZGTX.build.variant=STM32H7xx/H745Z(G-I)T_H755ZIT
9840+
GenH7.menu.pnum.GENERIC_H745ZGTX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H745_CM7.svd
9841+
9842+
# Generic H745ZITx
9843+
GenH7.menu.pnum.GENERIC_H745ZITX=Generic H745ZITx
9844+
GenH7.menu.pnum.GENERIC_H745ZITX.upload.maximum_size=2097152
9845+
GenH7.menu.pnum.GENERIC_H745ZITX.upload.maximum_data_size=884736
9846+
GenH7.menu.pnum.GENERIC_H745ZITX.build.board=GENERIC_H745ZITX
9847+
GenH7.menu.pnum.GENERIC_H745ZITX.build.product_line=STM32H745xx
9848+
GenH7.menu.pnum.GENERIC_H745ZITX.build.variant=STM32H7xx/H745Z(G-I)T_H755ZIT
9849+
GenH7.menu.pnum.GENERIC_H745ZITX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H745_CM7.svd
9850+
98339851
# Generic H747AGIx
98349852
GenH7.menu.pnum.GENERIC_H747AGIX=Generic H747AGIx
98359853
GenH7.menu.pnum.GENERIC_H747AGIX.upload.maximum_size=1048576
@@ -9992,6 +10010,15 @@ GenH7.menu.pnum.GENERIC_H755XIHX.build.product_line=STM32H755xx
999210010
GenH7.menu.pnum.GENERIC_H755XIHX.build.variant=STM32H7xx/H742X(G-I)H_H743X(G-I)H_H745X(G-I)H_H747X(G-I)H_H750XBH_H753XIH_H755XIH_H757XIH
999310011
GenH7.menu.pnum.GENERIC_H755XIHX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H755_CM7.svd
999410012

10013+
# Generic H755ZITx
10014+
GenH7.menu.pnum.GENERIC_H755ZITX=Generic H755ZITx
10015+
GenH7.menu.pnum.GENERIC_H755ZITX.upload.maximum_size=2097152
10016+
GenH7.menu.pnum.GENERIC_H755ZITX.upload.maximum_data_size=884736
10017+
GenH7.menu.pnum.GENERIC_H755ZITX.build.board=GENERIC_H755ZITX
10018+
GenH7.menu.pnum.GENERIC_H755ZITX.build.product_line=STM32H755xx
10019+
GenH7.menu.pnum.GENERIC_H755ZITX.build.variant=STM32H7xx/H745Z(G-I)T_H755ZIT
10020+
GenH7.menu.pnum.GENERIC_H755ZITX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H755_CM7.svd
10021+
999510022
# Generic H757AIIx
999610023
GenH7.menu.pnum.GENERIC_H757AIIX=Generic H757AIIx
999710024
GenH7.menu.pnum.GENERIC_H757AIIX.upload.maximum_size=2097152

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) 2020-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_* */
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
/*
2+
******************************************************************************
3+
**
4+
5+
** File : LinkerScript.ld
6+
**
7+
**
8+
** Abstract : Linker script for STM32H7 series
9+
** 1024Kbytes FLASH and 192Kbytes RAM
10+
**
11+
** Set heap size, stack size and stack location according
12+
** to application requirements.
13+
**
14+
** Set memory bank area and size if external memory is used.
15+
**
16+
** Target : STMicroelectronics STM32
17+
**
18+
** Distribution: The file is distributed as is, without any warranty
19+
** of any kind.
20+
**
21+
*****************************************************************************
22+
** @attention
23+
**
24+
** Copyright (c) 2025 STMicroelectronics.
25+
** All rights reserved.
26+
**
27+
** This software is licensed under terms that can be found in the LICENSE file
28+
** in the root directory of this software component.
29+
** If no LICENSE file comes with this software, it is provided AS-IS.
30+
**
31+
******************************************************************************
32+
*/
33+
34+
/* Entry Point */
35+
ENTRY(Reset_Handler)
36+
37+
/* Highest address of the user mode stack */
38+
_estack = 0x20020000; /* end of RAM */
39+
/* Generate a link error if heap and stack don't fit into RAM */
40+
_Min_Heap_Size = 0x200 ; /* required amount of heap */
41+
_Min_Stack_Size = 0x400 ; /* required amount of stack */
42+
43+
/* Specify the memory areas */
44+
MEMORY
45+
{
46+
FLASH (rx) : ORIGIN = 0x08000000 + LD_FLASH_OFFSET, LENGTH = LD_MAX_SIZE - LD_FLASH_OFFSET
47+
RAM (xrw) : ORIGIN = 0x20000000 , LENGTH = LD_MAX_DATA_SIZE
48+
ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K
49+
}
50+
51+
/* Define output sections */
52+
SECTIONS
53+
{
54+
/* The startup code goes first into FLASH */
55+
.isr_vector :
56+
{
57+
. = ALIGN(4);
58+
KEEP(*(.isr_vector)) /* Startup code */
59+
. = ALIGN(4);
60+
} >FLASH
61+
62+
/* The program code and other data goes into FLASH */
63+
.text :
64+
{
65+
. = ALIGN(4);
66+
*(.text) /* .text sections (code) */
67+
*(.text*) /* .text* sections (code) */
68+
*(.glue_7) /* glue arm to thumb code */
69+
*(.glue_7t) /* glue thumb to arm code */
70+
*(.eh_frame)
71+
72+
KEEP (*(.init))
73+
KEEP (*(.fini))
74+
75+
. = ALIGN(4);
76+
_etext = .; /* define a global symbols at end of code */
77+
} >FLASH
78+
79+
/* Constant data goes into FLASH */
80+
.rodata :
81+
{
82+
. = ALIGN(4);
83+
*(.rodata) /* .rodata sections (constants, strings, etc.) */
84+
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
85+
. = ALIGN(4);
86+
} >FLASH
87+
88+
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
89+
{
90+
*(.ARM.extab* .gnu.linkonce.armextab.*)
91+
} >FLASH
92+
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
93+
{
94+
__exidx_start = .;
95+
*(.ARM.exidx*)
96+
__exidx_end = .;
97+
} >FLASH
98+
99+
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
100+
{
101+
PROVIDE_HIDDEN (__preinit_array_start = .);
102+
KEEP (*(.preinit_array*))
103+
PROVIDE_HIDDEN (__preinit_array_end = .);
104+
} >FLASH
105+
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
106+
{
107+
PROVIDE_HIDDEN (__init_array_start = .);
108+
KEEP (*(SORT(.init_array.*)))
109+
KEEP (*(.init_array*))
110+
PROVIDE_HIDDEN (__init_array_end = .);
111+
} >FLASH
112+
.fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
113+
{
114+
PROVIDE_HIDDEN (__fini_array_start = .);
115+
KEEP (*(SORT(.fini_array.*)))
116+
KEEP (*(.fini_array*))
117+
PROVIDE_HIDDEN (__fini_array_end = .);
118+
} >FLASH
119+
120+
/* used by the startup to initialize data */
121+
_sidata = LOADADDR(.data);
122+
123+
/* Initialized data sections goes into RAM, load LMA copy after code */
124+
.data :
125+
{
126+
. = ALIGN(4);
127+
_sdata = .; /* create a global symbol at data start */
128+
*(.data) /* .data sections */
129+
*(.data*) /* .data* sections */
130+
131+
. = ALIGN(4);
132+
_edata = .; /* define a global symbol at data end */
133+
} >RAM AT> FLASH
134+
135+
136+
/* Uninitialized data section */
137+
. = ALIGN(4);
138+
.bss :
139+
{
140+
/* This is used by the startup in order to initialize the .bss section */
141+
_sbss = .; /* define a global symbol at bss start */
142+
__bss_start__ = _sbss;
143+
*(.bss)
144+
*(.bss*)
145+
*(COMMON)
146+
147+
. = ALIGN(4);
148+
_ebss = .; /* define a global symbol at bss end */
149+
__bss_end__ = _ebss;
150+
} >RAM
151+
152+
/* User_heap_stack section, used to check that there is enough RAM left */
153+
._user_heap_stack :
154+
{
155+
. = ALIGN(8);
156+
PROVIDE ( end = . );
157+
PROVIDE ( _end = . );
158+
. = . + _Min_Heap_Size;
159+
. = . + _Min_Stack_Size;
160+
. = ALIGN(8);
161+
} >RAM
162+
163+
164+
165+
/* Remove information from the standard libraries */
166+
/DISCARD/ :
167+
{
168+
libc.a ( * )
169+
libm.a ( * )
170+
libgcc.a ( * )
171+
}
172+
173+
.ARM.attributes 0 : { *(.ARM.attributes) }
174+
}
175+
176+

0 commit comments

Comments
 (0)