Skip to content

Commit 5cbe65b

Browse files
committed
variant(h7rs): add generic H7R3L8H, H7R7L8H, H7S3L8 and H7S7L8H
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parent 93560c6 commit 5cbe65b

3 files changed

Lines changed: 406 additions & 2 deletions

File tree

‎boards.txt‎

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10468,6 +10468,95 @@ GenH7.menu.upload_method.OpenOCDDapLink.upload.tool=openocd_upload
1046810468
GenH7.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.0=interface/cmsis-dap.cfg
1046910469
GenH7.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.1={runtime.platform.path}/debugger/select_swd.cfg
1047010470

10471+
################################################################################
10472+
# Generic H7RS
10473+
GenH7RS.name=Generic STM32H7RS Series
10474+
10475+
GenH7RS.build.core=arduino
10476+
GenH7RS.build.board=GenH7RS
10477+
GenH7RS.build.st_extra_flags=-DCORE_CM7 -D{build.product_line} {build.enable_usb} {build.xSerial}
10478+
GenH7RS.build.mcu=cortex-m7
10479+
GenH7RS.build.fpu=-mfpu=fpv5-sp-d16
10480+
GenH7RS.build.float-abi=-mfloat-abi=hard
10481+
GenH7RS.build.series=STM32H7RSxx
10482+
GenH7RS.build.flash_offset=0x0
10483+
GenH7RS.upload.maximum_size=0
10484+
GenH7RS.upload.maximum_data_size=0
10485+
GenH7RS.openocd.target=stm32h7x
10486+
GenH7RS.vid.0=0x0483
10487+
GenH7RS.pid.0=0x5740
10488+
10489+
# Generic H7R3L8Hx
10490+
GenH7RS.menu.pnum.GENERIC_H7R3L8HX=Generic H7R3L8Hx
10491+
GenH7RS.menu.pnum.GENERIC_H7R3L8HX.upload.maximum_size=65536
10492+
GenH7RS.menu.pnum.GENERIC_H7R3L8HX.upload.maximum_data_size=634880
10493+
GenH7RS.menu.pnum.GENERIC_H7R3L8HX.build.board=GENERIC_H7R3L8HX
10494+
GenH7RS.menu.pnum.GENERIC_H7R3L8HX.build.product_line=STM32H7R3xx
10495+
GenH7RS.menu.pnum.GENERIC_H7R3L8HX.build.variant=STM32H7RSxx/H7R3L8H_H7R7L8H_H7S3L8H_H7S7L8H
10496+
GenH7RS.menu.pnum.GENERIC_H7R3L8HX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7RSxx/STM32H7R.svd
10497+
10498+
# Generic H7R7L8Hx
10499+
GenH7RS.menu.pnum.GENERIC_H7R7L8HX=Generic H7R7L8Hx
10500+
GenH7RS.menu.pnum.GENERIC_H7R7L8HX.upload.maximum_size=65536
10501+
GenH7RS.menu.pnum.GENERIC_H7R7L8HX.upload.maximum_data_size=634880
10502+
GenH7RS.menu.pnum.GENERIC_H7R7L8HX.build.board=GENERIC_H7R7L8HX
10503+
GenH7RS.menu.pnum.GENERIC_H7R7L8HX.build.product_line=STM32H7R7xx
10504+
GenH7RS.menu.pnum.GENERIC_H7R7L8HX.build.variant=STM32H7RSxx/H7R3L8H_H7R7L8H_H7S3L8H_H7S7L8H
10505+
GenH7RS.menu.pnum.GENERIC_H7R7L8HX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7RSxx/STM32H7R.svd
10506+
10507+
# Generic H7S3L8Hx
10508+
GenH7RS.menu.pnum.GENERIC_H7S3L8HX=Generic H7S3L8Hx
10509+
GenH7RS.menu.pnum.GENERIC_H7S3L8HX.upload.maximum_size=65536
10510+
GenH7RS.menu.pnum.GENERIC_H7S3L8HX.upload.maximum_data_size=634880
10511+
GenH7RS.menu.pnum.GENERIC_H7S3L8HX.build.board=GENERIC_H7S3L8HX
10512+
GenH7RS.menu.pnum.GENERIC_H7S3L8HX.build.product_line=STM32H7S3xx
10513+
GenH7RS.menu.pnum.GENERIC_H7S3L8HX.build.variant=STM32H7RSxx/H7R3L8H_H7R7L8H_H7S3L8H_H7S7L8H
10514+
GenH7RS.menu.pnum.GENERIC_H7S3L8HX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7RSxx/STM32H7S.svd
10515+
10516+
# Generic H7S7L8Hx
10517+
GenH7RS.menu.pnum.GENERIC_H7S7L8HX=Generic H7S7L8Hx
10518+
GenH7RS.menu.pnum.GENERIC_H7S7L8HX.upload.maximum_size=65536
10519+
GenH7RS.menu.pnum.GENERIC_H7S7L8HX.upload.maximum_data_size=634880
10520+
GenH7RS.menu.pnum.GENERIC_H7S7L8HX.build.board=GENERIC_H7S7L8HX
10521+
GenH7RS.menu.pnum.GENERIC_H7S7L8HX.build.product_line=STM32H7S7xx
10522+
GenH7RS.menu.pnum.GENERIC_H7S7L8HX.build.variant=STM32H7RSxx/H7R3L8H_H7R7L8H_H7S3L8H_H7S7L8H
10523+
GenH7RS.menu.pnum.GENERIC_H7S7L8HX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7RSxx/STM32H7S.svd
10524+
10525+
# Upload menu
10526+
GenH7RS.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD)
10527+
GenH7RS.menu.upload_method.swdMethod.upload.protocol=swd
10528+
GenH7RS.menu.upload_method.swdMethod.upload.options=-a {upload.address} -m {upload.mode} -s {upload.start} -f {upload.freq} -n {upload.stlink_sn}
10529+
GenH7RS.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
10530+
10531+
GenH7RS.menu.upload_method.jlinkMethod=STM32CubeProgrammer (J-Link)
10532+
GenH7RS.menu.upload_method.jlinkMethod.upload.protocol=jlink
10533+
GenH7RS.menu.upload_method.jlinkMethod.upload.options=-a {upload.address} -s {upload.start}
10534+
GenH7RS.menu.upload_method.jlinkMethod.upload.tool=stm32CubeProg
10535+
10536+
GenH7RS.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)
10537+
GenH7RS.menu.upload_method.serialMethod.upload.protocol=serial
10538+
GenH7RS.menu.upload_method.serialMethod.upload.options=-c {serial.port.file} -a {upload.address} -s {upload.start} -p {upload.parity}
10539+
GenH7RS.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
10540+
10541+
GenH7RS.menu.upload_method.dfuMethod=STM32CubeProgrammer (DFU)
10542+
GenH7RS.menu.upload_method.dfuMethod.upload.protocol=dfu
10543+
GenH7RS.menu.upload_method.dfuMethod.upload.options=-v {upload.vid} -p {upload.pid} -a {upload.address} -s {upload.start}
10544+
GenH7RS.menu.upload_method.dfuMethod.upload.tool=stm32CubeProg
10545+
10546+
GenH7RS.menu.upload_method.bmpMethod=BMP (Black Magic Probe)
10547+
GenH7RS.menu.upload_method.bmpMethod.upload.protocol=gdb_bmp
10548+
GenH7RS.menu.upload_method.bmpMethod.upload.tool=bmp_upload
10549+
10550+
GenH7RS.menu.upload_method.OpenOCDSTLink=OpenOCD STLink (SWD)
10551+
GenH7RS.menu.upload_method.OpenOCDSTLink.upload.protocol=stlink
10552+
GenH7RS.menu.upload_method.OpenOCDSTLink.upload.tool=openocd_upload
10553+
10554+
GenH7RS.menu.upload_method.OpenOCDDapLink=OpenOCD DapLink (SWD)
10555+
GenH7RS.menu.upload_method.OpenOCDDapLink.upload.protocol=cmsis-dap
10556+
GenH7RS.menu.upload_method.OpenOCDDapLink.upload.tool=openocd_upload
10557+
GenH7RS.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.0=interface/cmsis-dap.cfg
10558+
GenH7RS.menu.upload_method.OpenOCDDapLink.debug.server.openocd.scripts.1={runtime.platform.path}/debugger/select_swd.cfg
10559+
1047110560
################################################################################
1047210561
# Generic L0
1047310562
GenL0.name=Generic STM32L0 series
@@ -15514,6 +15603,12 @@ GenH7.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
1551415603
GenH7.menu.xserial.disabled=Disabled (No Serial support)
1551515604
GenH7.menu.xserial.disabled.build.xSerial=
1551615605

15606+
GenH7RS.menu.xserial.generic=Enabled (generic 'Serial')
15607+
GenH7RS.menu.xserial.none=Enabled (no generic 'Serial')
15608+
GenH7RS.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
15609+
GenH7RS.menu.xserial.disabled=Disabled (No Serial support)
15610+
GenH7RS.menu.xserial.disabled.build.xSerial=
15611+
1551715612
GenL0.menu.xserial.generic=Enabled (generic 'Serial')
1551815613
GenL0.menu.xserial.none=Enabled (no generic 'Serial')
1551915614
GenL0.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
@@ -15859,6 +15954,19 @@ GenH7.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
1585915954
GenH7.menu.xusb.HSFS=High Speed in Full Speed mode
1586015955
GenH7.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS
1586115956

15957+
GenH7RS.menu.usb.none=None
15958+
GenH7RS.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
15959+
GenH7RS.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
15960+
GenH7RS.menu.usb.CDC=CDC (no generic 'Serial')
15961+
GenH7RS.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB
15962+
GenH7RS.menu.usb.HID=HID (keyboard and mouse)
15963+
GenH7RS.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
15964+
GenH7RS.menu.xusb.FS=Low/Full Speed
15965+
GenH7RS.menu.xusb.HS=High Speed
15966+
GenH7RS.menu.xusb.HS.build.usb_speed=-DUSE_USB_HS
15967+
GenH7RS.menu.xusb.HSFS=High Speed in Full Speed mode
15968+
GenH7RS.menu.xusb.HSFS.build.usb_speed=-DUSE_USB_HS -DUSE_USB_HS_IN_FS
15969+
1586215970
GenL0.menu.usb.none=None
1586315971
GenL0.menu.usb.CDCgen=CDC (generic 'Serial' supersede U(S)ART)
1586415972
GenL0.menu.usb.CDCgen.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC
@@ -16396,6 +16504,26 @@ GenH7.menu.opt.ogstd.build.flags.optimize=-Og
1639616504
GenH7.menu.opt.o0std=No Optimization (-O0)
1639716505
GenH7.menu.opt.o0std.build.flags.optimize=-O0
1639816506

16507+
GenH7RS.menu.opt.osstd=Smallest (-Os default)
16508+
GenH7RS.menu.opt.oslto=Smallest (-Os) with LTO
16509+
GenH7RS.menu.opt.oslto.build.flags.optimize=-Os -flto
16510+
GenH7RS.menu.opt.o1std=Fast (-O1)
16511+
GenH7RS.menu.opt.o1std.build.flags.optimize=-O1
16512+
GenH7RS.menu.opt.o1lto=Fast (-O1) with LTO
16513+
GenH7RS.menu.opt.o1lto.build.flags.optimize=-O1 -flto
16514+
GenH7RS.menu.opt.o2std=Faster (-O2)
16515+
GenH7RS.menu.opt.o2std.build.flags.optimize=-O2
16516+
GenH7RS.menu.opt.o2lto=Faster (-O2) with LTO
16517+
GenH7RS.menu.opt.o2lto.build.flags.optimize=-O2 -flto
16518+
GenH7RS.menu.opt.o3std=Fastest (-O3)
16519+
GenH7RS.menu.opt.o3std.build.flags.optimize=-O3
16520+
GenH7RS.menu.opt.o3lto=Fastest (-O3) with LTO
16521+
GenH7RS.menu.opt.o3lto.build.flags.optimize=-O3 -flto
16522+
GenH7RS.menu.opt.ogstd=Debug (-Og)
16523+
GenH7RS.menu.opt.ogstd.build.flags.optimize=-Og
16524+
GenH7RS.menu.opt.o0std=No Optimization (-O0)
16525+
GenH7RS.menu.opt.o0std.build.flags.optimize=-O0
16526+
1639916527
GenL0.menu.opt.osstd=Smallest (-Os default)
1640016528
GenL0.menu.opt.oslto=Smallest (-Os) with LTO
1640116529
GenL0.menu.opt.oslto.build.flags.optimize=-Os -flto
@@ -17016,6 +17144,14 @@ GenH7.menu.dbg.enable_log.build.flags.debug=
1701617144
GenH7.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
1701717145
GenH7.menu.dbg.enable_all.build.flags.debug=-g
1701817146

17147+
GenH7RS.menu.dbg.none=None
17148+
GenH7RS.menu.dbg.enable_sym=Symbols Enabled (-g)
17149+
GenH7RS.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
17150+
GenH7RS.menu.dbg.enable_log=Core logs Enabled
17151+
GenH7RS.menu.dbg.enable_log.build.flags.debug=
17152+
GenH7RS.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
17153+
GenH7RS.menu.dbg.enable_all.build.flags.debug=-g
17154+
1701917155
GenL0.menu.dbg.none=None
1702017156
GenL0.menu.dbg.enable_sym=Symbols Enabled (-g)
1702117157
GenL0.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
@@ -17389,6 +17525,16 @@ GenH7.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float
1738917525
GenH7.menu.rtlib.full=Newlib Standard
1739017526
GenH7.menu.rtlib.full.build.flags.ldspecs=
1739117527

17528+
GenH7RS.menu.rtlib.nano=Newlib Nano (default)
17529+
GenH7RS.menu.rtlib.nanofp=Newlib Nano + Float Printf
17530+
GenH7RS.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
17531+
GenH7RS.menu.rtlib.nanofs=Newlib Nano + Float Scanf
17532+
GenH7RS.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
17533+
GenH7RS.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
17534+
GenH7RS.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
17535+
GenH7RS.menu.rtlib.full=Newlib Standard
17536+
GenH7RS.menu.rtlib.full.build.flags.ldspecs=
17537+
1739217538
GenL0.menu.rtlib.nano=Newlib Nano (default)
1739317539
GenL0.menu.rtlib.nanofp=Newlib Nano + Float Printf
1739417540
GenL0.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float

‎variants/STM32H7RSxx/H7R3L8H_H7R7L8H_H7S3L8H_H7S7L8H/generic_clock.c‎

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,58 @@
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+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
25+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
26+
27+
/** Configure the main internal regulator output voltage
28+
*/
29+
if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE0) != HAL_OK) {
30+
Error_Handler();
31+
}
32+
33+
/** Configure LSE Drive Capability
34+
*/
35+
HAL_PWR_EnableBkUpAccess();
36+
37+
/** Initializes the RCC Oscillators according to the specified parameters
38+
* in the RCC_OscInitTypeDef structure.
39+
*/
40+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
41+
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
42+
RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1;
43+
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
44+
RCC_OscInitStruct.PLL1.PLLState = RCC_PLL_ON;
45+
RCC_OscInitStruct.PLL1.PLLSource = RCC_PLLSOURCE_HSI;
46+
RCC_OscInitStruct.PLL1.PLLM = 4;
47+
RCC_OscInitStruct.PLL1.PLLN = 37;
48+
RCC_OscInitStruct.PLL1.PLLP = 1;
49+
RCC_OscInitStruct.PLL1.PLLQ = 2;
50+
RCC_OscInitStruct.PLL1.PLLR = 2;
51+
RCC_OscInitStruct.PLL1.PLLS = 2;
52+
RCC_OscInitStruct.PLL1.PLLT = 2;
53+
RCC_OscInitStruct.PLL1.PLLFractional = 4096;
54+
RCC_OscInitStruct.PLL2.PLLState = RCC_PLL_NONE;
55+
RCC_OscInitStruct.PLL3.PLLState = RCC_PLL_NONE;
56+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
57+
Error_Handler();
58+
}
59+
60+
/** Initializes the CPU, AHB and APB buses clocks
61+
*/
62+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
63+
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2
64+
| RCC_CLOCKTYPE_PCLK4 | RCC_CLOCKTYPE_PCLK5;
65+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
66+
RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
67+
RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV2;
68+
RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;
69+
RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
70+
RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;
71+
RCC_ClkInitStruct.APB5CLKDivider = RCC_APB5_DIV2;
72+
73+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7) != HAL_OK) {
74+
Error_Handler();
75+
}
2676
}
2777

2878
#endif /* ARDUINO_GENERIC_* */

0 commit comments

Comments
 (0)