Skip to content

Commit 90be73c

Browse files
shreyask21fpistm
andcommitted
variants(F7): add generic F723I(C-E)(K-T)_F730I8K_F733IE(K-T)
Signed-off-by: Shreyas Kulkarni <[email protected]> Co-authored-by: Frederic Pillon <[email protected]>
1 parent d21f829 commit 90be73c

File tree

4 files changed

+300
-6
lines changed

4 files changed

+300
-6
lines changed

Diff for: README.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -383,8 +383,12 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
383383
| :----: | :-------: | ---- | :-----: | :---- |
384384
| :green_heart: | STM32F722RC<br>STM32F722RE | Generic Board | *2.3.0* | |
385385
| :green_heart: | STM32F722ZC<br>STM32F722ZE | Generic Board | *2.4.0* | |
386-
| :green_heart: | STM32F730R8<br>STM32F732RE | Generic Board | *2.3.0* | |
386+
| :yellow_heart: | STM32F723IC<br>STM32F723IE | Generic Board | **2.7.0** | |
387+
| :yellow_heart: | STM32F730I8K | Generic Board | **2.7.0** | |
388+
| :green_heart: | STM32F730R8 | Generic Board | *2.3.0* | |
389+
| :green_heart: | STM32F732RE | Generic Board | *2.3.0* | |
387390
| :green_heart: | STM32F732ZE | Generic Board | *2.4.0* | |
391+
| :yellow_heart: | STM32F733IE<br> | Generic Board | **2.7.0** | |
388392
| :green_heart: | STM32F745ZE<br>STM32F745ZG | Generic Board | *2.0.0* | |
389393
| :green_heart: | STM32F746BE<br>STM32F746BG<br>STM32F746NE<br>STM32F746NG | Generic Board | *2.0.0* | |
390394
| :green_heart: | STM32F746ZE<br>STM32F746ZG | Generic Board | *2.0.0* | |

Diff for: boards.txt

+56
Original file line numberDiff line numberDiff line change
@@ -4628,6 +4628,46 @@ GenF7.menu.pnum.GENERIC_F722ZETX.build.board=GENERIC_F722ZETX
46284628
GenF7.menu.pnum.GENERIC_F722ZETX.build.product_line=STM32F722xx
46294629
GenF7.menu.pnum.GENERIC_F722ZETX.build.variant=STM32F7xx/F722Z(C-E)T_F732ZET
46304630

4631+
# Generic F723ICKx
4632+
GenF7.menu.pnum.GENERIC_F723ICKX=Generic F723ICKx
4633+
GenF7.menu.pnum.GENERIC_F723ICKX.upload.maximum_size=262144
4634+
GenF7.menu.pnum.GENERIC_F723ICKX.upload.maximum_data_size=196608
4635+
GenF7.menu.pnum.GENERIC_F723ICKX.build.board=GENERIC_F723ICKX
4636+
GenF7.menu.pnum.GENERIC_F723ICKX.build.product_line=STM32F723xx
4637+
GenF7.menu.pnum.GENERIC_F723ICKX.build.variant=STM32F7xx/F723I(C-E)(K-T)_F730I8K_F733IE(K-T)
4638+
4639+
# Generic F723ICTx
4640+
GenF7.menu.pnum.GENERIC_F723ICTX=Generic F723ICTx
4641+
GenF7.menu.pnum.GENERIC_F723ICTX.upload.maximum_size=262144
4642+
GenF7.menu.pnum.GENERIC_F723ICTX.upload.maximum_data_size=196608
4643+
GenF7.menu.pnum.GENERIC_F723ICTX.build.board=GENERIC_F723ICTX
4644+
GenF7.menu.pnum.GENERIC_F723ICTX.build.product_line=STM32F723xx
4645+
GenF7.menu.pnum.GENERIC_F723ICTX.build.variant=STM32F7xx/F723I(C-E)(K-T)_F730I8K_F733IE(K-T)
4646+
4647+
# Generic F723IEKx
4648+
GenF7.menu.pnum.GENERIC_F723IEKX=Generic F723IEKx
4649+
GenF7.menu.pnum.GENERIC_F723IEKX.upload.maximum_size=524288
4650+
GenF7.menu.pnum.GENERIC_F723IEKX.upload.maximum_data_size=196608
4651+
GenF7.menu.pnum.GENERIC_F723IEKX.build.board=GENERIC_F723IEKX
4652+
GenF7.menu.pnum.GENERIC_F723IEKX.build.product_line=STM32F723xx
4653+
GenF7.menu.pnum.GENERIC_F723IEKX.build.variant=STM32F7xx/F723I(C-E)(K-T)_F730I8K_F733IE(K-T)
4654+
4655+
# Generic F723IETx
4656+
GenF7.menu.pnum.GENERIC_F723IETX=Generic F723IETx
4657+
GenF7.menu.pnum.GENERIC_F723IETX.upload.maximum_size=524288
4658+
GenF7.menu.pnum.GENERIC_F723IETX.upload.maximum_data_size=196608
4659+
GenF7.menu.pnum.GENERIC_F723IETX.build.board=GENERIC_F723IETX
4660+
GenF7.menu.pnum.GENERIC_F723IETX.build.product_line=STM32F723xx
4661+
GenF7.menu.pnum.GENERIC_F723IETX.build.variant=STM32F7xx/F723I(C-E)(K-T)_F730I8K_F733IE(K-T)
4662+
4663+
# Generic F730I8Kx
4664+
GenF7.menu.pnum.GENERIC_F730I8KX=Generic F730I8Kx
4665+
GenF7.menu.pnum.GENERIC_F730I8KX.upload.maximum_size=65536
4666+
GenF7.menu.pnum.GENERIC_F730I8KX.upload.maximum_data_size=196608
4667+
GenF7.menu.pnum.GENERIC_F730I8KX.build.board=GENERIC_F730I8KX
4668+
GenF7.menu.pnum.GENERIC_F730I8KX.build.product_line=STM32F730xx
4669+
GenF7.menu.pnum.GENERIC_F730I8KX.build.variant=STM32F7xx/F723I(C-E)(K-T)_F730I8K_F733IE(K-T)
4670+
46314671
# Generic F730R8Tx
46324672
GenF7.menu.pnum.GENERIC_F730R8TX=Generic F730R8Tx
46334673
GenF7.menu.pnum.GENERIC_F730R8TX.upload.maximum_size=65536
@@ -4652,6 +4692,22 @@ GenF7.menu.pnum.GENERIC_F732ZETX.build.board=GENERIC_F732ZETX
46524692
GenF7.menu.pnum.GENERIC_F732ZETX.build.product_line=STM32F732xx
46534693
GenF7.menu.pnum.GENERIC_F732ZETX.build.variant=STM32F7xx/F722Z(C-E)T_F732ZET
46544694

4695+
# Generic F733IEKx
4696+
GenF7.menu.pnum.GENERIC_F733IEKX=Generic F733IEKx
4697+
GenF7.menu.pnum.GENERIC_F733IEKX.upload.maximum_size=524288
4698+
GenF7.menu.pnum.GENERIC_F733IEKX.upload.maximum_data_size=196608
4699+
GenF7.menu.pnum.GENERIC_F733IEKX.build.board=GENERIC_F733IEKX
4700+
GenF7.menu.pnum.GENERIC_F733IEKX.build.product_line=STM32F733xx
4701+
GenF7.menu.pnum.GENERIC_F733IEKX.build.variant=STM32F7xx/F723I(C-E)(K-T)_F730I8K_F733IE(K-T)
4702+
4703+
# Generic F733IETx
4704+
GenF7.menu.pnum.GENERIC_F733IETX=Generic F733IETx
4705+
GenF7.menu.pnum.GENERIC_F733IETX.upload.maximum_size=524288
4706+
GenF7.menu.pnum.GENERIC_F733IETX.upload.maximum_data_size=196608
4707+
GenF7.menu.pnum.GENERIC_F733IETX.build.board=GENERIC_F733IETX
4708+
GenF7.menu.pnum.GENERIC_F733IETX.build.product_line=STM32F733xx
4709+
GenF7.menu.pnum.GENERIC_F733IETX.build.variant=STM32F7xx/F723I(C-E)(K-T)_F730I8K_F733IE(K-T)
4710+
46554711
# Generic F745ZETx
46564712
GenF7.menu.pnum.GENERIC_F745ZETX=Generic F745ZETx
46574713
GenF7.menu.pnum.GENERIC_F745ZETX.upload.maximum_size=524288

Diff for: variants/STM32F7xx/F723I(C-E)(K-T)_F730I8K_F733IE(K-T)/generic_clock.c

+56-5
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,65 @@
1717
#include "pins_arduino.h"
1818

1919
/**
20-
* @brief System Clock Configuration
21-
* @param None
22-
* @retval None
23-
*/
20+
* @brief System Clock Configuration
21+
* @param None
22+
* @retval None
23+
*/
2424
WEAK void SystemClock_Config(void)
2525
{
2626
/* SystemClock_Config can be generated by STM32CubeMX */
27-
#warning "SystemClock_Config() is empty. Default clock at reset is used."
27+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
28+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
29+
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {};
30+
31+
/** Configure the main internal regulator output voltage
32+
*/
33+
__HAL_RCC_PWR_CLK_ENABLE();
34+
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
35+
36+
/** Initializes the RCC Oscillators according to the specified parameters
37+
* in the RCC_OscInitTypeDef structure.
38+
*/
39+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
40+
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
41+
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
42+
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
43+
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
44+
RCC_OscInitStruct.PLL.PLLM = 8;
45+
RCC_OscInitStruct.PLL.PLLN = 216;
46+
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
47+
RCC_OscInitStruct.PLL.PLLQ = 9;
48+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
49+
Error_Handler();
50+
}
51+
52+
/** Activate the Over-Drive mode
53+
*/
54+
if (HAL_PWREx_EnableOverDrive() != HAL_OK) {
55+
Error_Handler();
56+
}
57+
58+
/** Initializes the CPU, AHB and APB buses clocks
59+
*/
60+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
61+
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
62+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
63+
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
64+
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
65+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
66+
67+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7) != HAL_OK) {
68+
Error_Handler();
69+
}
70+
71+
/** Initializes the peripherals clock
72+
*/
73+
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SDMMC1 | RCC_PERIPHCLK_CLK48;
74+
PeriphClkInitStruct.Clk48ClockSelection = RCC_CLK48SOURCE_PLL;
75+
PeriphClkInitStruct.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_CLK48;
76+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {
77+
Error_Handler();
78+
}
2879
}
2980

3081
#endif /* ARDUINO_GENERIC_* */
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
/*
2+
******************************************************************************
3+
**
4+
** @file : LinkerScript.ld
5+
**
6+
** @author : Auto-generated by STM32CubeIDE
7+
**
8+
** @brief : Linker script for F723I(C-E)(K-T)_F730I8K_F733IE(K-T) Devices from STM32F7 series
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+
** Distribution: The file is distributed as is, without any warranty
18+
** of any kind.
19+
**
20+
******************************************************************************
21+
** @attention
22+
**
23+
** Copyright (c) 2023 STMicroelectronics.
24+
** All rights reserved.
25+
**
26+
** This software is licensed under terms that can be found in the LICENSE file
27+
** in the root directory of this software component.
28+
** If no LICENSE file comes with this software, it is provided AS-IS.
29+
**
30+
******************************************************************************
31+
*/
32+
33+
/* Entry Point */
34+
ENTRY(Reset_Handler)
35+
36+
/* Highest address of the user mode stack */
37+
_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */
38+
39+
_Min_Heap_Size = 0x200; /* required amount of heap */
40+
_Min_Stack_Size = 0x400; /* required amount of stack */
41+
42+
/* Memories definition */
43+
MEMORY
44+
{
45+
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = LD_MAX_DATA_SIZE
46+
FLASH (rx) : ORIGIN = 0x8000000 + LD_FLASH_OFFSET, LENGTH = LD_MAX_SIZE - LD_FLASH_OFFSET
47+
}
48+
49+
/* Sections */
50+
SECTIONS
51+
{
52+
/* The startup code into "FLASH" Rom type memory */
53+
.isr_vector :
54+
{
55+
. = ALIGN(4);
56+
KEEP(*(.isr_vector)) /* Startup code */
57+
. = ALIGN(4);
58+
} >FLASH
59+
60+
/* The program code and other data into "FLASH" Rom type memory */
61+
.text :
62+
{
63+
. = ALIGN(4);
64+
*(.text) /* .text sections (code) */
65+
*(.text*) /* .text* sections (code) */
66+
*(.glue_7) /* glue arm to thumb code */
67+
*(.glue_7t) /* glue thumb to arm code */
68+
*(.eh_frame)
69+
70+
KEEP (*(.init))
71+
KEEP (*(.fini))
72+
73+
. = ALIGN(4);
74+
_etext = .; /* define a global symbols at end of code */
75+
} >FLASH
76+
77+
/* Constant data into "FLASH" Rom type memory */
78+
.rodata :
79+
{
80+
. = ALIGN(4);
81+
*(.rodata) /* .rodata sections (constants, strings, etc.) */
82+
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
83+
. = ALIGN(4);
84+
} >FLASH
85+
86+
.ARM.extab : {
87+
. = ALIGN(4);
88+
*(.ARM.extab* .gnu.linkonce.armextab.*)
89+
. = ALIGN(4);
90+
} >FLASH
91+
92+
.ARM : {
93+
. = ALIGN(4);
94+
__exidx_start = .;
95+
*(.ARM.exidx*)
96+
__exidx_end = .;
97+
. = ALIGN(4);
98+
} >FLASH
99+
100+
.preinit_array :
101+
{
102+
. = ALIGN(4);
103+
PROVIDE_HIDDEN (__preinit_array_start = .);
104+
KEEP (*(.preinit_array*))
105+
PROVIDE_HIDDEN (__preinit_array_end = .);
106+
. = ALIGN(4);
107+
} >FLASH
108+
109+
.init_array :
110+
{
111+
. = ALIGN(4);
112+
PROVIDE_HIDDEN (__init_array_start = .);
113+
KEEP (*(SORT(.init_array.*)))
114+
KEEP (*(.init_array*))
115+
PROVIDE_HIDDEN (__init_array_end = .);
116+
. = ALIGN(4);
117+
} >FLASH
118+
119+
.fini_array :
120+
{
121+
. = ALIGN(4);
122+
PROVIDE_HIDDEN (__fini_array_start = .);
123+
KEEP (*(SORT(.fini_array.*)))
124+
KEEP (*(.fini_array*))
125+
PROVIDE_HIDDEN (__fini_array_end = .);
126+
. = ALIGN(4);
127+
} >FLASH
128+
129+
/* Used by the startup to initialize data */
130+
_sidata = LOADADDR(.data);
131+
132+
/* Initialized data sections into "RAM" Ram type memory */
133+
.data :
134+
{
135+
. = ALIGN(4);
136+
_sdata = .; /* create a global symbol at data start */
137+
*(.data) /* .data sections */
138+
*(.data*) /* .data* sections */
139+
*(.RamFunc) /* .RamFunc sections */
140+
*(.RamFunc*) /* .RamFunc* sections */
141+
142+
. = ALIGN(4);
143+
_edata = .; /* define a global symbol at data end */
144+
145+
} >RAM AT> FLASH
146+
147+
/* Uninitialized data section into "RAM" Ram type memory */
148+
. = ALIGN(4);
149+
.bss :
150+
{
151+
/* This is used by the startup in order to initialize the .bss section */
152+
_sbss = .; /* define a global symbol at bss start */
153+
__bss_start__ = _sbss;
154+
*(.bss)
155+
*(.bss*)
156+
*(COMMON)
157+
158+
. = ALIGN(4);
159+
_ebss = .; /* define a global symbol at bss end */
160+
__bss_end__ = _ebss;
161+
} >RAM
162+
163+
/* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */
164+
._user_heap_stack :
165+
{
166+
. = ALIGN(8);
167+
PROVIDE ( end = . );
168+
PROVIDE ( _end = . );
169+
. = . + _Min_Heap_Size;
170+
. = . + _Min_Stack_Size;
171+
. = ALIGN(8);
172+
} >RAM
173+
174+
/* Remove information from the compiler libraries */
175+
/DISCARD/ :
176+
{
177+
libc.a ( * )
178+
libm.a ( * )
179+
libgcc.a ( * )
180+
}
181+
182+
.ARM.attributes 0 : { *(.ARM.attributes) }
183+
}

0 commit comments

Comments
 (0)