Skip to content

Commit 58d5915

Browse files
committed
Add Nucleo H473ZI
Signed-off-by: Frederic Pillon <[email protected]>
1 parent 9452ed5 commit 58d5915

File tree

7 files changed

+1717
-0
lines changed

7 files changed

+1717
-0
lines changed

boards.txt

+12
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,18 @@ Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.product_line=STM32F767xx
6363
Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.variant=NUCLEO_F767ZI
6464
Nucleo_144.menu.pnum.NUCLEO_F767ZI.build.cmsis_lib_gcc=arm_cortexM7l_math
6565

66+
# NUCLEO_H743ZI board
67+
Nucleo_144.menu.pnum.NUCLEO_H743ZI=Nucleo H743ZI
68+
Nucleo_144.menu.pnum.NUCLEO_H743ZI.node=NODE_H743ZI
69+
Nucleo_144.menu.pnum.NUCLEO_H743ZI.upload.maximum_size=2097152
70+
Nucleo_144.menu.pnum.NUCLEO_H743ZI.upload.maximum_data_size=131072
71+
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.mcu=cortex-m7 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
72+
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.board=NUCLEO_H743ZI
73+
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.series=STM32H7xx
74+
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.product_line=STM32H743xx
75+
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.variant=NUCLEO_H743ZI
76+
Nucleo_144.menu.pnum.NUCLEO_H743ZI.build.cmsis_lib_gcc=arm_cortexM7l_math
77+
6678
# NUCLEO_L496ZG board
6779
Nucleo_144.menu.pnum.NUCLEO_L496ZG=Nucleo L496ZG
6880
Nucleo_144.menu.pnum.NUCLEO_L496ZG.node=NODE_L496ZG

variants/NUCLEO_H743ZI/PeripheralPins.c

+557
Large diffs are not rendered by default.

variants/NUCLEO_H743ZI/PinNamesVar.h

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/* SYS_WKUP */
2+
#ifdef PWR_WAKEUP_PIN1
3+
SYS_WKUP1 = PA_0, /* SYS_WKUP0 */
4+
#endif
5+
#ifdef PWR_WAKEUP_PIN2
6+
SYS_WKUP2 = PA_2, /* SYS_WKUP1 */
7+
#endif
8+
#ifdef PWR_WAKEUP_PIN3
9+
SYS_WKUP3 = PC_13, /* SYS_WKUP2 */
10+
#endif
11+
#ifdef PWR_WAKEUP_PIN4
12+
SYS_WKUP4 = PI_8, /* SYS_WKUP3 - Manually added */
13+
#endif
14+
#ifdef PWR_WAKEUP_PIN5
15+
SYS_WKUP5 = PI_11, /* SYS_WKUP4 - Manually added */
16+
#endif
17+
#ifdef PWR_WAKEUP_PIN6
18+
SYS_WKUP6 = PC_1, /* SYS_WKUP5 */
19+
#endif
20+
#ifdef PWR_WAKEUP_PIN7
21+
SYS_WKUP7 = NC,
22+
#endif
23+
#ifdef PWR_WAKEUP_PIN8
24+
SYS_WKUP8 = NC,
25+
#endif
26+
/* USB */
27+
#ifdef USBCON
28+
USB_OTG_FS_SOF = PA_8,
29+
USB_OTG_FS_VBUS = PA_9,
30+
USB_OTG_FS_ID = PA_10,
31+
USB_OTG_FS_DM = PA_11,
32+
USB_OTG_FS_DP = PA_12,
33+
USB_OTG_HS_ULPI_D0 = PA_3,
34+
USB_OTG_HS_SOF = PA_4,
35+
USB_OTG_HS_ULPI_CK = PA_5,
36+
USB_OTG_HS_ULPI_D1 = PB_0,
37+
USB_OTG_HS_ULPI_D2 = PB_1,
38+
USB_OTG_HS_ULPI_D7 = PB_5,
39+
USB_OTG_HS_ULPI_D3 = PB_10,
40+
USB_OTG_HS_ULPI_D4 = PB_11,
41+
USB_OTG_HS_ID = PB_12,
42+
USB_OTG_HS_ULPI_D5 = PB_12,
43+
USB_OTG_HS_ULPI_D6 = PB_13,
44+
USB_OTG_HS_VBUS = PB_13,
45+
USB_OTG_HS_DM = PB_14,
46+
USB_OTG_HS_DP = PB_15,
47+
USB_OTG_HS_ULPI_STP = PC_0,
48+
USB_OTG_HS_ULPI_DIR = PC_2,
49+
USB_OTG_HS_ULPI_NXT = PC_3,
50+
#endif

variants/NUCLEO_H743ZI/ldscript.ld

+192
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
/*
2+
*****************************************************************************
3+
**
4+
5+
** File : LinkerScript.ld
6+
**
7+
** Abstract : Linker script for STM32H743ZI Device with
8+
** 2048KByte FLASH, 1056KByte RAM
9+
**
10+
** Set heap size, stack size and stack location according
11+
** to application requirements.
12+
**
13+
** Set memory bank area and size if external memory is used.
14+
**
15+
** Target : STMicroelectronics STM32
16+
**
17+
**
18+
** Distribution: The file is distributed as is, without any warranty
19+
** of any kind.
20+
**
21+
*****************************************************************************
22+
** @attention
23+
**
24+
** <h2><center>&copy; COPYRIGHT(c) 2014 Ac6</center></h2>
25+
**
26+
** Redistribution and use in source and binary forms, with or without modification,
27+
** are permitted provided that the following conditions are met:
28+
** 1. Redistributions of source code must retain the above copyright notice,
29+
** this list of conditions and the following disclaimer.
30+
** 2. Redistributions in binary form must reproduce the above copyright notice,
31+
** this list of conditions and the following disclaimer in the documentation
32+
** and/or other materials provided with the distribution.
33+
** 3. Neither the name of Ac6 nor the names of its contributors
34+
** may be used to endorse or promote products derived from this software
35+
** without specific prior written permission.
36+
**
37+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
38+
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
39+
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40+
** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
41+
** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
42+
** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
43+
** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
44+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45+
** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
46+
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
47+
**
48+
*****************************************************************************
49+
*/
50+
51+
/* Entry Point */
52+
ENTRY(Reset_Handler)
53+
54+
/* Highest address of the user mode stack */
55+
_estack = 0x20020000; /* end of RAM */
56+
/* Generate a link error if heap and stack don't fit into RAM */
57+
_Min_Heap_Size = 0x200; /* required amount of heap */
58+
_Min_Stack_Size = 0x400; /* required amount of stack */
59+
60+
/* Specify the memory areas */
61+
MEMORY
62+
{
63+
DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
64+
RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = 512K
65+
RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K
66+
RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 64K
67+
ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K
68+
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 2048K
69+
}
70+
71+
/* Define output sections */
72+
SECTIONS
73+
{
74+
/* The startup code goes first into FLASH */
75+
.isr_vector :
76+
{
77+
. = ALIGN(4);
78+
KEEP(*(.isr_vector)) /* Startup code */
79+
. = ALIGN(4);
80+
} >FLASH
81+
82+
/* The program code and other data goes into FLASH */
83+
.text ALIGN(4):
84+
{
85+
. = ALIGN(4);
86+
*(.text) /* .text sections (code) */
87+
*(.text*) /* .text* sections (code) */
88+
*(.glue_7) /* glue arm to thumb code */
89+
*(.glue_7t) /* glue thumb to arm code */
90+
*(.eh_frame)
91+
92+
KEEP (*(.init))
93+
KEEP (*(.fini))
94+
95+
. = ALIGN(4);
96+
_etext = .; /* define a global symbols at end of code */
97+
} >FLASH
98+
99+
/* Constant data goes into FLASH */
100+
.rodata :
101+
{
102+
. = ALIGN(4);
103+
*(.rodata) /* .rodata sections (constants, strings, etc.) */
104+
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
105+
. = ALIGN(4);
106+
} >FLASH
107+
108+
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
109+
.ARM : {
110+
__exidx_start = .;
111+
*(.ARM.exidx*)
112+
__exidx_end = .;
113+
} >FLASH
114+
115+
.preinit_array :
116+
{
117+
PROVIDE_HIDDEN (__preinit_array_start = .);
118+
KEEP (*(.preinit_array*))
119+
PROVIDE_HIDDEN (__preinit_array_end = .);
120+
} >FLASH
121+
.init_array :
122+
{
123+
PROVIDE_HIDDEN (__init_array_start = .);
124+
KEEP (*(SORT(.init_array.*)))
125+
KEEP (*(.init_array*))
126+
PROVIDE_HIDDEN (__init_array_end = .);
127+
} >FLASH
128+
.fini_array :
129+
{
130+
PROVIDE_HIDDEN (__fini_array_start = .);
131+
KEEP (*(SORT(.fini_array.*)))
132+
KEEP (*(.fini_array*))
133+
PROVIDE_HIDDEN (__fini_array_end = .);
134+
} >FLASH
135+
136+
/* used by the startup to initialize data */
137+
_sidata = LOADADDR(.data);
138+
139+
/* Initialized data sections goes into RAM, load LMA copy after code */
140+
.data :
141+
{
142+
. = ALIGN(4);
143+
_sdata = .; /* create a global symbol at data start */
144+
*(.data) /* .data sections */
145+
*(.data*) /* .data* sections */
146+
147+
. = ALIGN(4);
148+
_edata = .; /* define a global symbol at data end */
149+
} >DTCMRAM AT> FLASH
150+
151+
152+
/* Uninitialized data section */
153+
. = ALIGN(4);
154+
.bss :
155+
{
156+
/* This is used by the startup in order to initialize the .bss secion */
157+
_sbss = .; /* define a global symbol at bss start */
158+
__bss_start__ = _sbss;
159+
*(.bss)
160+
*(.bss*)
161+
*(COMMON)
162+
163+
. = ALIGN(4);
164+
_ebss = .; /* define a global symbol at bss end */
165+
__bss_end__ = _ebss;
166+
} >DTCMRAM
167+
168+
/* User_heap_stack section, used to check that there is enough RAM left */
169+
._user_heap_stack :
170+
{
171+
. = ALIGN(8);
172+
PROVIDE ( end = . );
173+
PROVIDE ( _end = . );
174+
. = . + _Min_Heap_Size;
175+
. = . + _Min_Stack_Size;
176+
. = ALIGN(8);
177+
} >DTCMRAM
178+
179+
180+
181+
/* Remove information from the standard libraries */
182+
/DISCARD/ :
183+
{
184+
libc.a ( * )
185+
libm.a ( * )
186+
libgcc.a ( * )
187+
}
188+
189+
.ARM.attributes 0 : { *(.ARM.attributes) }
190+
}
191+
192+

0 commit comments

Comments
 (0)