Skip to content

Commit e878c6e

Browse files
committed
Necessary stuff for board to boot, still needs works
1 parent 60888f1 commit e878c6e

File tree

4 files changed

+494
-17
lines changed

4 files changed

+494
-17
lines changed

boards.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9488,6 +9488,16 @@ GenH7.menu.pnum.WeActMiniH750VBTX.build.variant_h=variant_WeActMiniH7xx.h
94889488
GenH7.menu.pnum.WeActMiniH750VBTX.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
94899489
GenH7.menu.pnum.WeActMiniH750VBTX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H750.svd
94909490

9491+
# WeAct Mini H723VGTX
9492+
GenH7.menu.pnum.WeActMiniH723VGTX=WeAct MiniSTM32H723VGTX
9493+
GenH7.menu.pnum.WeActMiniH723VGTX.upload.maximum_size=1048576
9494+
GenH7.menu.pnum.WeActMiniH723VGTX.upload.maximum_data_size=577536
9495+
GenH7.menu.pnum.WeActMiniH723VGTX.build.board=WeActMiniH723VGTX
9496+
GenH7.menu.pnum.WeActMiniH723VGTX.build.product_line=STM32H723xx
9497+
GenH7.menu.pnum.WeActMiniH750VBTX.build.variant_h=variant_WeActMiniH7xx.h
9498+
GenH7.menu.pnum.WeActMiniH723VGTX.build.variant=STM32H7xx/H723V(E-G)(H-T)_H730VB(H-T)_H733VG(H-T)
9499+
GenH7.menu.pnum.WeActMiniH723VGTX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H723.svd
9500+
94919501
# Generic H723VEHx
94929502
GenH7.menu.pnum.GENERIC_H723VEHX=Generic H723VEHx
94939503
GenH7.menu.pnum.GENERIC_H723VEHX.upload.maximum_size=524288

variants/STM32H7xx/H723V(E-G)(H-T)_H730VB(H-T)_H733VG(H-T)/ldscript.ld

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
** Author : STM32CubeIDE
77
**
88
** Abstract : Linker script for STM32H7 series
9-
** 1024Kbytes FLASH and 560Kbytes RAM
9+
** 512Kbytes FLASH and 560Kbytes RAM
1010
**
1111
** Set heap size, stack size and stack location according
1212
** to application requirements.
@@ -21,7 +21,7 @@
2121
*****************************************************************************
2222
** @attention
2323
**
24-
** Copyright (c) 2025 STMicroelectronics.
24+
** Copyright (c) 2022 STMicroelectronics.
2525
** All rights reserved.
2626
**
2727
** This software is licensed under terms that can be found in the LICENSE file
@@ -37,18 +37,18 @@ ENTRY(Reset_Handler)
3737
/* Highest address of the user mode stack */
3838
_estack = ORIGIN(RAM_D1) + LENGTH(RAM_D1); /* end of RAM */
3939
/* 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 */
40+
_Min_Heap_Size = 0x200 ; /* required amount of heap */
41+
_Min_Stack_Size = 0x400 ; /* required amount of stack */
4242

4343
/* Specify the memory areas */
4444
MEMORY
4545
{
4646
ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K
4747
DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
48-
FLASH (rx) : ORIGIN = 0x08000000 + LD_FLASH_OFFSET, LENGTH = LD_MAX_SIZE - LD_FLASH_OFFSET
49-
RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = LD_MAX_DATA_SIZE
48+
FLASH (rx) : ORIGIN = 0x8000000 + LD_FLASH_OFFSET, LENGTH = LD_MAX_SIZE - LD_FLASH_OFFSET
49+
RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = 320K
5050
RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 32K
51-
RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 16K
51+
RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 16K
5252
}
5353

5454
/* Define output sections */
@@ -88,33 +88,29 @@ SECTIONS
8888
. = ALIGN(4);
8989
} >FLASH
9090

91-
.ARM.extab (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
92-
{
93-
*(.ARM.extab* .gnu.linkonce.armextab.*)
94-
} >FLASH
95-
.ARM (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
96-
{
91+
.ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
92+
.ARM : {
9793
__exidx_start = .;
9894
*(.ARM.exidx*)
9995
__exidx_end = .;
10096
} >FLASH
10197

102-
.preinit_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
98+
.preinit_array :
10399
{
104100
PROVIDE_HIDDEN (__preinit_array_start = .);
105101
KEEP (*(.preinit_array*))
106102
PROVIDE_HIDDEN (__preinit_array_end = .);
107103
} >FLASH
108104

109-
.init_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
105+
.init_array :
110106
{
111107
PROVIDE_HIDDEN (__init_array_start = .);
112108
KEEP (*(SORT(.init_array.*)))
113109
KEEP (*(.init_array*))
114110
PROVIDE_HIDDEN (__init_array_end = .);
115111
} >FLASH
116112

117-
.fini_array (READONLY) : /* The READONLY keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */
113+
.fini_array :
118114
{
119115
PROVIDE_HIDDEN (__fini_array_start = .);
120116
KEEP (*(SORT(.fini_array.*)))
@@ -175,4 +171,4 @@ SECTIONS
175171
}
176172

177173
.ARM.attributes 0 : { *(.ARM.attributes) }
178-
}
174+
}
Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2020, STMicroelectronics
4+
* All rights reserved.
5+
*
6+
* This software component is licensed by ST under BSD 3-Clause license,
7+
* the "License"; You may not use this file except in compliance with the
8+
* License. You may obtain a copy of the License at:
9+
* opensource.org/licenses/BSD-3-Clause
10+
*
11+
*******************************************************************************
12+
*/
13+
#if defined(ARDUINO_WeActMiniH723VGTX)
14+
#include "pins_arduino.h"
15+
16+
// Digital PinName array
17+
const PinName digitalPin[] = {
18+
PA_0, // D0/A0
19+
PA_1, // D1/A1
20+
PA_2, // D2/A2
21+
PA_3, // D3/A3
22+
PA_4, // D4/A4
23+
PA_5, // D5/A5
24+
PA_6, // D6/A6
25+
PA_7, // D7/A7
26+
PA_8, // D8
27+
PA_9, // D9
28+
PA_10, // D10
29+
PA_11, // D11
30+
PA_12, // D12
31+
PA_13, // D13
32+
PA_14, // D14
33+
PA_15, // D15
34+
PB_0, // D16/A8
35+
PB_1, // D17/A9
36+
PB_2, // D18
37+
PB_3, // D19
38+
PB_4, // D20
39+
PB_5, // D21
40+
PB_6, // D22
41+
PB_7, // D23
42+
PB_8, // D24
43+
PB_9, // D25
44+
PB_10, // D26
45+
PB_11, // D27
46+
PB_12, // D28
47+
PB_13, // D29
48+
PB_14, // D30
49+
PB_15, // D31
50+
PC_0, // D32/A10
51+
PC_1, // D33/A11
52+
PC_4, // D34/A12
53+
PC_5, // D35/A13
54+
PC_6, // D36
55+
PC_7, // D37
56+
PC_8, // D38
57+
PC_9, // D39
58+
PC_10, // D40
59+
PC_11, // D41
60+
PC_12, // D42
61+
PC_13, // D43
62+
PC_14, // D44
63+
PC_15, // D45
64+
PD_0, // D46
65+
PD_1, // D47
66+
PD_2, // D48
67+
PD_3, // D49
68+
PD_4, // D50
69+
PD_5, // D51
70+
PD_6, // D52
71+
PD_7, // D53
72+
PD_8, // D54
73+
PD_9, // D55
74+
PD_10, // D56
75+
PD_11, // D57
76+
PD_12, // D58
77+
PD_13, // D59
78+
PD_14, // D60
79+
PD_15, // D61
80+
PE_0, // D62
81+
PE_1, // D63
82+
PE_2, // D64
83+
PE_3, // D65
84+
PE_4, // D66
85+
PE_5, // D67
86+
PE_6, // D68
87+
PE_7, // D69
88+
PE_8, // D70
89+
PE_9, // D71
90+
PE_10, // D72
91+
PE_11, // D73
92+
PE_12, // D74
93+
PE_13, // D75
94+
PE_14, // D76
95+
PE_15, // D77
96+
PH_0, // D78
97+
PH_1, // D79
98+
PC_2_C, // D80/A14
99+
PC_3_C // D81/A15
100+
};
101+
102+
// Analog (Ax) pin number array
103+
const uint32_t analogInputPin[] = {
104+
0, // A0, PA0
105+
1, // A1, PA1
106+
2, // A2, PA2
107+
3, // A3, PA3
108+
4, // A4, PA4
109+
5, // A5, PA5
110+
6, // A6, PA6
111+
7, // A7, PA7
112+
16, // A8, PB0
113+
17, // A9, PB1
114+
32, // A10, PC0
115+
33, // A11, PC1
116+
34, // A12, PC4
117+
35, // A13, PC5
118+
80, // A14, PC2_C
119+
81 // A15, PC3_C
120+
};
121+
122+
WEAK void SystemClock_Config(void)
123+
{
124+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
125+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
126+
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {};
127+
128+
/** Supply configuration update enable
129+
*/
130+
HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);
131+
132+
/** Configure the main internal regulator output voltage
133+
*/
134+
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0);
135+
136+
while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
137+
138+
/** Configure LSE Drive Capability
139+
*/
140+
HAL_PWR_EnableBkUpAccess();
141+
__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_HIGH);
142+
143+
/** Initializes the RCC Oscillators according to the specified parameters
144+
* in the RCC_OscInitTypeDef structure.
145+
*/
146+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE;
147+
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
148+
RCC_OscInitStruct.LSEState = RCC_LSE_ON;
149+
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
150+
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
151+
RCC_OscInitStruct.PLL.PLLM = 5;
152+
RCC_OscInitStruct.PLL.PLLN = 48;
153+
RCC_OscInitStruct.PLL.PLLP = 1;
154+
RCC_OscInitStruct.PLL.PLLQ = 5;
155+
RCC_OscInitStruct.PLL.PLLR = 2;
156+
RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_2;
157+
RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
158+
RCC_OscInitStruct.PLL.PLLFRACN = 0;
159+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
160+
{
161+
Error_Handler();
162+
}
163+
164+
/** Initializes the CPU, AHB and APB buses clocks
165+
*/
166+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
167+
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2
168+
|RCC_CLOCKTYPE_D3PCLK1|RCC_CLOCKTYPE_D1PCLK1;
169+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
170+
RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
171+
RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV1;
172+
RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2;
173+
RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;
174+
RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
175+
RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;
176+
177+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK)
178+
{
179+
Error_Handler();
180+
}
181+
182+
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB | RCC_PERIPHCLK_OSPI
183+
| RCC_PERIPHCLK_SDMMC | RCC_PERIPHCLK_ADC
184+
| RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_USART16
185+
| RCC_PERIPHCLK_USART234578 | RCC_PERIPHCLK_I2C123
186+
| RCC_PERIPHCLK_I2C4 | RCC_PERIPHCLK_SPI123
187+
| RCC_PERIPHCLK_SPI45 | RCC_PERIPHCLK_SPI6;
188+
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_PLL;
189+
PeriphClkInitStruct.OspiClockSelection = RCC_OSPICLKSOURCE_D1HCLK;
190+
PeriphClkInitStruct.SdmmcClockSelection = RCC_SDMMCCLKSOURCE_PLL;
191+
PeriphClkInitStruct.AdcClockSelection = RCC_ADCCLKSOURCE_PLL2;
192+
PeriphClkInitStruct.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_D3PCLK1;
193+
PeriphClkInitStruct.Usart16ClockSelection = RCC_USART16910CLKSOURCE_D2PCLK2;
194+
PeriphClkInitStruct.Usart234578ClockSelection = RCC_USART234578CLKSOURCE_D2PCLK1;
195+
PeriphClkInitStruct.I2c123ClockSelection = RCC_I2C1235CLKSOURCE_D2PCLK1;
196+
PeriphClkInitStruct.I2c4ClockSelection = RCC_I2C4CLKSOURCE_D3PCLK1;
197+
PeriphClkInitStruct.Spi123ClockSelection = RCC_SPI123CLKSOURCE_PLL;
198+
PeriphClkInitStruct.Spi45ClockSelection = RCC_SPI45CLKSOURCE_D2PCLK1;
199+
PeriphClkInitStruct.Spi6ClockSelection = RCC_SPI6CLKSOURCE_D3PCLK1;
200+
201+
202+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
203+
{
204+
Error_Handler();
205+
}
206+
}
207+
208+
#endif /* ARDUINO_GENERIC_* */

0 commit comments

Comments
 (0)