Skip to content

Commit 8971fcc

Browse files
committed
added l412rb_p
1 parent 55e4695 commit 8971fcc

File tree

6 files changed

+528
-44
lines changed

6 files changed

+528
-44
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
148148
| :green_heart: | STM32L053R8 | [Nucleo L053R8](http://www.st.com/en/evaluation-tools/nucleo-l053r8.html) | *0.1.0* | |
149149
| :green_heart: | STM32L073RZ | [Nucleo L073RZ](http://www.st.com/en/evaluation-tools/nucleo-l073rz.html) | *1.4.0* | |
150150
| :green_heart: | STM32L152RE | [Nucleo L152RE](http://www.st.com/en/evaluation-tools/nucleo-l152re.html) | *1.0.0* | |
151+
| :green_heart: | STM32L412RB-P | [Nucleo L412RC-P](https://www.st.com/en/evaluation-tools/nucleo-l412rb-p.html) | *2.10.1* | |
151152
| :green_heart: | STM32L433RC-P | [Nucleo L433RC-P](https://www.st.com/en/evaluation-tools/nucleo-l433rc-p.html) | *1.9.0* | |
152153
| :green_heart: | STM32L452RE | [Nucleo L452RE](http://www.st.com/en/evaluation-tools/nucleo-l452re.html) | *1.5.0* | |
153154
| :green_heart: | STM32L452RE-P | [Nucleo L452RE-P](http://www.st.com/en/evaluation-tools/nucleo-l452re-p.html) | *1.8.0* | |
@@ -704,7 +705,7 @@ User can add a STM32 based board following this [wiki](https://github.com/stm32d
704705
| Status | Device(s) | Name | Release | Notes |
705706
| :----: | :-------: | ---- | :-----: | :---- |
706707
| :green_heart: | STM32L412K8<br>STM32L412KB<br>STM32L422KB | Generic Board | *2.0.0* | |
707-
| :green_heart: | STM32L431CB<br>STM32L431CC | Generic Board | *2.8.1* | |
708+
| :green_heart: | STM32L412RBIxP<br>STM32L412RBTxP | Generic Board | *2.10.1* | |
708709
| :green_heart: | STM32L431RB<br>STM32L431RC | Generic Board | *2.3.0* | |
709710
| :green_heart: | STM32L432KB<br>STM32L432KC<br>STM32L442KC | Generic Board | *2.0.0* | |
710711
| :green_heart: | STM32L433CBT<br>STM32L433CCT | Generic Board | *2.1.0* | |

boards.txt

Lines changed: 33 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -758,6 +758,21 @@ Nucleo_64.menu.pnum.NUCLEO_L152RE.build.variant=STM32L1xx/L151RET_L152RET_L162RE
758758
Nucleo_64.menu.pnum.NUCLEO_L152RE.openocd.target=stm32l1
759759
Nucleo_64.menu.pnum.NUCLEO_L152RE.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L1xx/STM32L152.svd
760760

761+
# NUCLEO_L412RB_P board
762+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P=Nucleo L412RB-P
763+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.node=NODE_L412RB
764+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.upload.maximum_size=131072
765+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.upload.maximum_data_size=40960
766+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.build.mcu=cortex-m4
767+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.build.fpu=-mfpu=fpv4-sp-d16
768+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.build.float-abi=-mfloat-abi=hard
769+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.build.board=NUCLEO_L412RB_P
770+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.build.series=STM32L4xx
771+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.build.product_line=STM32L412xx
772+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.build.variant=STM32L4xx/L412RB(I-T)xP
773+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.openocd.target=stm32l4x
774+
Nucleo_64.menu.pnum.NUCLEO_L412RB_P.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L4xx/STM32L412.svd
775+
761776
# NUCLEO_L433RC_P board
762777
Nucleo_64.menu.pnum.NUCLEO_L433RC_P=Nucleo L433RC-P
763778
Nucleo_64.menu.pnum.NUCLEO_L433RC_P.node=NODE_L433RC
@@ -1423,22 +1438,6 @@ Disco.menu.pnum.STM32H747I_DISCO.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
14231438
Disco.menu.pnum.STM32H747I_DISCO.openocd.target=stm32h7x
14241439
Disco.menu.pnum.STM32H747I_DISCO.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32H7xx/STM32H747_CM7.svd
14251440

1426-
# STM32L562E-DK
1427-
Disco.menu.pnum.STM32L562E_DK=STM32L562E-DK
1428-
Disco.menu.pnum.STM32L562E_DK.node=DIS_L562QE
1429-
Disco.menu.pnum.STM32L562E_DK.upload.maximum_size=524288
1430-
Disco.menu.pnum.STM32L562E_DK.upload.maximum_data_size=196608
1431-
Disco.menu.pnum.STM32L562E_DK.build.mcu=cortex-m33
1432-
Disco.menu.pnum.STM32L562E_DK.build.fpu=-mfpu=fpv4-sp-d16
1433-
Disco.menu.pnum.STM32L562E_DK.build.float-abi=-mfloat-abi=hard
1434-
Disco.menu.pnum.STM32L562E_DK.build.board=STM32L562E_DK
1435-
Disco.menu.pnum.STM32L562E_DK.build.series=STM32L5xx
1436-
Disco.menu.pnum.STM32L562E_DK.build.product_line=STM32L562xx
1437-
Disco.menu.pnum.STM32L562E_DK.build.variant=STM32L5xx/L552Q(C-E)IxQ_L562QEIxQ
1438-
Disco.menu.pnum.STM32L562E_DK.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
1439-
Disco.menu.pnum.STM32L562E_DK.openocd.target=stm32l5x
1440-
Disco.menu.pnum.STM32L562E_DK.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L5xx/STM32L562.svd
1441-
14421441
# STM32WB5MM-DK board
14431442
Disco.menu.pnum.STM32WB5MM_DK=STM32WB5MM-DK
14441443
Disco.menu.pnum.STM32WB5MM_DK.node="DIS_WB5MMG"
@@ -11471,6 +11470,24 @@ GenL4.menu.pnum.GENERIC_L412KBUX.build.product_line=STM32L412xx
1147111470
GenL4.menu.pnum.GENERIC_L412KBUX.build.variant=STM32L4xx/L412K(8-B)(T-U)_L422KB(T-U)
1147211471
GenL4.menu.pnum.GENERIC_L412KBUX.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L4xx/STM32L412.svd
1147311472

11473+
# Generic L412RBIxP
11474+
GenL4.menu.pnum.GENERIC_L412RBIXP=Generic L412RBIxP
11475+
GenL4.menu.pnum.GENERIC_L412RBIXP.upload.maximum_size=131072
11476+
GenL4.menu.pnum.GENERIC_L412RBIXP.upload.maximum_data_size=40960
11477+
GenL4.menu.pnum.GENERIC_L412RBIXP.build.board=GENERIC_L412RBIXP
11478+
GenL4.menu.pnum.GENERIC_L412RBIXP.build.product_line=STM32L412xx
11479+
GenL4.menu.pnum.GENERIC_L412RBIXP.build.variant=STM32L4xx/L412RB(I-T)xP
11480+
GenL4.menu.pnum.GENERIC_L412RBIXP.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L4xx/STM32L412.svd
11481+
11482+
# Generic L412RBTxP
11483+
GenL4.menu.pnum.GENERIC_L412RBTXP=Generic L412RBTxP
11484+
GenL4.menu.pnum.GENERIC_L412RBTXP.upload.maximum_size=131072
11485+
GenL4.menu.pnum.GENERIC_L412RBTXP.upload.maximum_data_size=40960
11486+
GenL4.menu.pnum.GENERIC_L412RBTXP.build.board=GENERIC_L412RBTXP
11487+
GenL4.menu.pnum.GENERIC_L412RBTXP.build.product_line=STM32L412xx
11488+
GenL4.menu.pnum.GENERIC_L412RBTXP.build.variant=STM32L4xx/L412RB(I-T)xP
11489+
GenL4.menu.pnum.GENERIC_L412RBTXP.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L4xx/STM32L412.svd
11490+
1147411491
# Generic L422KBTx
1147511492
GenL4.menu.pnum.GENERIC_L422KBTX=Generic L422KBTx
1147611493
GenL4.menu.pnum.GENERIC_L422KBTX.upload.maximum_size=131072
@@ -12242,24 +12259,6 @@ GenL5.openocd.target=stm32l5x
1224212259
GenL5.vid.0=0x0483
1224312260
GenL5.pid.0=0x5740
1224412261

12245-
# Generic L552QCIxQ
12246-
GenL5.menu.pnum.GENERIC_L552QCIXQ=Generic L552QCIxQ
12247-
GenL5.menu.pnum.GENERIC_L552QCIXQ.upload.maximum_size=262144
12248-
GenL5.menu.pnum.GENERIC_L552QCIXQ.upload.maximum_data_size=262144
12249-
GenL5.menu.pnum.GENERIC_L552QCIXQ.build.board=GENERIC_L552QCIXQ
12250-
GenL5.menu.pnum.GENERIC_L552QCIXQ.build.product_line=STM32L552xx
12251-
GenL5.menu.pnum.GENERIC_L552QCIXQ.build.variant=STM32L5xx/L552Q(C-E)IxQ_L562QEIxQ
12252-
GenL5.menu.pnum.GENERIC_L552QCIXQ.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L5xx/STM32L552.svd
12253-
12254-
# Generic L552QEIxQ
12255-
GenL5.menu.pnum.GENERIC_L552QEIXQ=Generic L552QEIxQ
12256-
GenL5.menu.pnum.GENERIC_L552QEIXQ.upload.maximum_size=524288
12257-
GenL5.menu.pnum.GENERIC_L552QEIXQ.upload.maximum_data_size=262144
12258-
GenL5.menu.pnum.GENERIC_L552QEIXQ.build.board=GENERIC_L552QEIXQ
12259-
GenL5.menu.pnum.GENERIC_L552QEIXQ.build.product_line=STM32L552xx
12260-
GenL5.menu.pnum.GENERIC_L552QEIXQ.build.variant=STM32L5xx/L552Q(C-E)IxQ_L562QEIxQ
12261-
GenL5.menu.pnum.GENERIC_L552QEIXQ.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L5xx/STM32L552.svd
12262-
1226312262
# Generic L552ZCTxQ
1226412263
GenL5.menu.pnum.GENERIC_L552ZCTXQ=Generic L552ZCTxQ
1226512264
GenL5.menu.pnum.GENERIC_L552ZCTXQ.upload.maximum_size=262144
@@ -12278,15 +12277,6 @@ GenL5.menu.pnum.GENERIC_L552ZETXQ.build.product_line=STM32L552xx
1227812277
GenL5.menu.pnum.GENERIC_L552ZETXQ.build.variant=STM32L5xx/L552Z(C-E)TxQ_L562ZETxQ
1227912278
GenL5.menu.pnum.GENERIC_L552ZETXQ.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L5xx/STM32L552.svd
1228012279

12281-
# Generic L562QC-EIxQ
12282-
GenL5.menu.pnum.GENERIC_L562QEIXQ=Generic L562QC-EIxQ
12283-
GenL5.menu.pnum.GENERIC_L562QEIXQ.upload.maximum_size=524288
12284-
GenL5.menu.pnum.GENERIC_L562QEIXQ.upload.maximum_data_size=196608
12285-
GenL5.menu.pnum.GENERIC_L562QEIXQ.build.board=GENERIC_L562QEIXQ
12286-
GenL5.menu.pnum.GENERIC_L562QEIXQ.build.product_line=STM32L562xx
12287-
GenL5.menu.pnum.GENERIC_L562QEIXQ.build.variant=STM32L5xx/L552Q(C-E)IxQ_L562QEIxQ
12288-
GenL5.menu.pnum.GENERIC_L562QEIXQ.debug.svd_file={runtime.tools.STM32_SVD.path}/svd/STM32L5xx/STM32L562.svd
12289-
1229012280
# Generic L562ZETxQ
1229112281
GenL5.menu.pnum.GENERIC_L562ZETXQ=Generic L562ZETxQ
1229212282
GenL5.menu.pnum.GENERIC_L562ZETXQ.upload.maximum_size=524288

variants/STM32L4xx/L412RB(I-T)xP/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ add_library(variant_bin STATIC EXCLUDE_FROM_ALL
2222
generic_clock.c
2323
PeripheralPins.c
2424
variant_generic.cpp
25+
variant_NUCLEO_L412RB_P.cpp
2526
)
2627
target_link_libraries(variant_bin PUBLIC variant_usage)
2728

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
/**
2+
******************************************************************************
3+
* @file LinkerScript.ld
4+
* @author Auto-generated by STM32CubeIDE
5+
* @brief Linker script for STM32L412RBxP Device from STM32L4 series
6+
* 128Kbytes FLASH
7+
* 40Kbytes RAM
8+
*
9+
* Set heap size, stack size and stack location according
10+
* to application requirements.
11+
*
12+
* Set memory bank area and size if external memory is used
13+
******************************************************************************
14+
* @attention
15+
*
16+
* <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
17+
* All rights reserved.</center></h2>
18+
*
19+
* This software component is licensed by ST under BSD 3-Clause license,
20+
* the "License"; You may not use this file except in compliance with the
21+
* License. You may obtain a copy of the License at:
22+
* opensource.org/licenses/BSD-3-Clause
23+
*
24+
******************************************************************************
25+
*/
26+
27+
/* Entry Point */
28+
ENTRY(Reset_Handler)
29+
30+
/* Highest address of the user mode stack */
31+
_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */
32+
33+
_Min_Heap_Size = 0x200; /* required amount of heap */
34+
_Min_Stack_Size = 0x400; /* required amount of stack */
35+
36+
/* Memories definition */
37+
MEMORY
38+
{
39+
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = LD_MAX_DATA_SIZE
40+
FLASH (rx) : ORIGIN = 0x8000000 + LD_FLASH_OFFSET, LENGTH = LD_MAX_SIZE - LD_FLASH_OFFSET
41+
}
42+
43+
/* Sections */
44+
SECTIONS
45+
{
46+
/* The startup code into "FLASH" Rom type memory */
47+
.isr_vector :
48+
{
49+
. = ALIGN(4);
50+
KEEP(*(.isr_vector)) /* Startup code */
51+
. = ALIGN(4);
52+
} >FLASH
53+
54+
/* The program code and other data into "FLASH" Rom type memory */
55+
.text :
56+
{
57+
. = ALIGN(4);
58+
*(.text) /* .text sections (code) */
59+
*(.text*) /* .text* sections (code) */
60+
*(.glue_7) /* glue arm to thumb code */
61+
*(.glue_7t) /* glue thumb to arm code */
62+
*(.eh_frame)
63+
64+
KEEP (*(.init))
65+
KEEP (*(.fini))
66+
67+
. = ALIGN(4);
68+
_etext = .; /* define a global symbols at end of code */
69+
} >FLASH
70+
71+
/* Constant data into "FLASH" Rom type memory */
72+
.rodata :
73+
{
74+
. = ALIGN(4);
75+
*(.rodata) /* .rodata sections (constants, strings, etc.) */
76+
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
77+
. = ALIGN(4);
78+
} >FLASH
79+
80+
.ARM.extab (READONLY) : {
81+
. = ALIGN(4);
82+
*(.ARM.extab* .gnu.linkonce.armextab.*)
83+
. = ALIGN(4);
84+
} >FLASH
85+
86+
.ARM (READONLY) : {
87+
. = ALIGN(4);
88+
__exidx_start = .;
89+
*(.ARM.exidx*)
90+
__exidx_end = .;
91+
. = ALIGN(4);
92+
} >FLASH
93+
94+
.preinit_array (READONLY) :
95+
{
96+
. = ALIGN(4);
97+
PROVIDE_HIDDEN (__preinit_array_start = .);
98+
KEEP (*(.preinit_array*))
99+
PROVIDE_HIDDEN (__preinit_array_end = .);
100+
. = ALIGN(4);
101+
} >FLASH
102+
103+
.init_array (READONLY) :
104+
{
105+
. = ALIGN(4);
106+
PROVIDE_HIDDEN (__init_array_start = .);
107+
KEEP (*(SORT(.init_array.*)))
108+
KEEP (*(.init_array*))
109+
PROVIDE_HIDDEN (__init_array_end = .);
110+
. = ALIGN(4);
111+
} >FLASH
112+
113+
.fini_array (READONLY) :
114+
{
115+
. = ALIGN(4);
116+
PROVIDE_HIDDEN (__fini_array_start = .);
117+
KEEP (*(SORT(.fini_array.*)))
118+
KEEP (*(.fini_array*))
119+
PROVIDE_HIDDEN (__fini_array_end = .);
120+
. = ALIGN(4);
121+
} >FLASH
122+
123+
/* Used by the startup to initialize data */
124+
_sidata = LOADADDR(.data);
125+
126+
/* Initialized data sections into "RAM" Ram type memory */
127+
.data :
128+
{
129+
. = ALIGN(4);
130+
_sdata = .; /* create a global symbol at data start */
131+
*(.data) /* .data sections */
132+
*(.data*) /* .data* sections */
133+
134+
. = ALIGN(4);
135+
_edata = .; /* define a global symbol at data end */
136+
137+
} >RAM AT> FLASH
138+
139+
/* Uninitialized data section into "RAM" Ram type memory */
140+
. = ALIGN(4);
141+
.bss :
142+
{
143+
/* This is used by the startup in order to initialize the .bss section */
144+
_sbss = .; /* define a global symbol at bss start */
145+
__bss_start__ = _sbss;
146+
*(.bss)
147+
*(.bss*)
148+
*(COMMON)
149+
150+
. = ALIGN(4);
151+
_ebss = .; /* define a global symbol at bss end */
152+
__bss_end__ = _ebss;
153+
} >RAM
154+
155+
/* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */
156+
._user_heap_stack :
157+
{
158+
. = ALIGN(8);
159+
PROVIDE ( end = . );
160+
PROVIDE ( _end = . );
161+
. = . + _Min_Heap_Size;
162+
. = . + _Min_Stack_Size;
163+
. = ALIGN(8);
164+
} >RAM
165+
166+
/* Remove information from the compiler libraries */
167+
/DISCARD/ :
168+
{
169+
libc.a ( * )
170+
libm.a ( * )
171+
libgcc.a ( * )
172+
}
173+
174+
.ARM.attributes 0 : { *(.ARM.attributes) }
175+
}

0 commit comments

Comments
 (0)