Skip to content

Commit 9667912

Browse files
Adminiusfpistm
authored andcommitted
Add STM32F030 demo board
Signed-off-by: Adminius <[email protected]>
1 parent c8ce456 commit 9667912

File tree

7 files changed

+1010
-0
lines changed

7 files changed

+1010
-0
lines changed

Diff for: boards.txt

+63
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,35 @@ Disco.menu.upload_method.STLink.upload.tool=stlink_upload
467467
# Other boards
468468

469469
###############################
470+
# Generic F0
471+
GenF0.name=Generic STM32F0 series
472+
473+
GenF0.build.core=arduino
474+
GenF0.build.board=GenF0
475+
GenF0.build.extra_flags=-D{build.product_line} {build.xSerial}
476+
477+
# DEMO_F030F4 board
478+
# Support: Serial1 (USART1 on PA3, PA2)
479+
GenF0.menu.pnum.DEMO_F030F4=STM32F030F4 Demo board
480+
GenF0.menu.pnum.DEMO_F030F4.upload.maximum_data_size=4096
481+
GenF0.menu.pnum.DEMO_F030F4.upload.maximum_size=16384
482+
GenF0.menu.pnum.DEMO_F030F4.build.mcu=cortex-m0
483+
GenF0.menu.pnum.DEMO_F030F4.build.board=DEMO_F030F4
484+
GenF0.menu.pnum.DEMO_F030F4.build.series=STM32F0xx
485+
GenF0.menu.pnum.DEMO_F030F4.build.product_line=STM32F030x6
486+
GenF0.menu.pnum.DEMO_F030F4.build.variant=DEMO_F030F4
487+
GenF0.menu.pnum.DEMO_F030F4.build.cmsis_lib_gcc=arm_cortexM0l_math
488+
489+
# Upload menu
490+
GenF0.menu.upload_method.STLinkMethod=STLink
491+
GenF0.menu.upload_method.STLinkMethod.upload.protocol=STLink
492+
GenF0.menu.upload_method.STLinkMethod.upload.tool=stlink_upload
493+
494+
GenF0.menu.upload_method.serialMethod=Serial
495+
GenF0.menu.upload_method.serialMethod.upload.protocol=maple_serial
496+
GenF0.menu.upload_method.serialMethod.upload.tool=serial_upload
497+
498+
################################################################################
470499
# Generic F103
471500
GenF103.name=Generic STM32F103 series
472501

@@ -705,6 +734,12 @@ Disco.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
705734
Disco.menu.xserial.disabled=Disabled (No Serial)
706735
Disco.menu.xserial.disabled.build.xSerial=
707736

737+
GenF0.menu.xserial.generic=Enabled with generic Serial
738+
GenF0.menu.xserial.none=Enabled without generic Serial
739+
GenF0.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
740+
GenF0.menu.xserial.disabled=Disabled (No Serial)
741+
GenF0.menu.xserial.disabled.build.xSerial=
742+
708743
GenF103.menu.xserial.generic=Enabled with generic Serial
709744
GenF103.menu.xserial.none=Enabled without generic Serial
710745
GenF103.menu.xserial.none.build.xSerial=-DHAL_UART_MODULE_ENABLED -DHWSERIAL_NONE
@@ -833,6 +868,24 @@ Disco.menu.opt.o3lto.build.flags.optimize=-O3 -flto
833868
Disco.menu.opt.ogstd=Debug (-g)
834869
Disco.menu.opt.ogstd.build.flags.optimize=-g -Og
835870

871+
GenF0.menu.opt.osstd=Smallest (-Os default)
872+
GenF0.menu.opt.oslto=Smallest (-Os) with LTO
873+
GenF0.menu.opt.oslto.build.flags.optimize=-Os -flto
874+
GenF0.menu.opt.o1std=Fast (-O1)
875+
GenF0.menu.opt.o1std.build.flags.optimize=-O1
876+
GenF0.menu.opt.o1lto=Fast (-O1) with LTO
877+
GenF0.menu.opt.o1lto.build.flags.optimize=-O1 -flto
878+
GenF0.menu.opt.o2std=Faster (-O2)
879+
GenF0.menu.opt.o2std.build.flags.optimize=-O2
880+
GenF0.menu.opt.o2lto=Faster (-O2) with LTO
881+
GenF0.menu.opt.o2lto.build.flags.optimize=-O2 -flto
882+
GenF0.menu.opt.o3std=Fastest (-O3)
883+
GenF0.menu.opt.o3std.build.flags.optimize=-O3
884+
GenF0.menu.opt.o3lto=Fastest (-O3) with LTO
885+
GenF0.menu.opt.o3lto.build.flags.optimize=-O3 -flto
886+
GenF0.menu.opt.ogstd=Debug (-g)
887+
GenF0.menu.opt.ogstd.build.flags.optimize=-g -Og
888+
836889
GenF103.menu.opt.osstd=Smallest (-Os default)
837890
GenF103.menu.opt.oslto=Smallest (-Os) with LTO
838891
GenF103.menu.opt.oslto.build.flags.optimize=-Os -flto
@@ -965,6 +1018,16 @@ Disco.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float
9651018
Disco.menu.rtlib.full=Newlib Standard
9661019
Disco.menu.rtlib.full.build.flags.ldspecs=
9671020

1021+
GenF0.menu.rtlib.nano=Newlib Nano (default)
1022+
GenF0.menu.rtlib.nanofp=Newlib Nano + Float Printf
1023+
GenF0.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
1024+
GenF0.menu.rtlib.nanofs=Newlib Nano + Float Scanf
1025+
GenF0.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
1026+
GenF0.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
1027+
GenF0.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
1028+
GenF0.menu.rtlib.full=Newlib Standard
1029+
GenF0.menu.rtlib.full.build.flags.ldspecs=
1030+
9681031
GenF103.menu.rtlib.nano=Newlib Nano (default)
9691032
GenF103.menu.rtlib.nanofp=Newlib Nano + Float Printf
9701033
GenF103.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float

Diff for: variants/DEMO_F030F4/PeripheralPins.c

+171
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2018, STMicroelectronics
4+
* All rights reserved.
5+
*
6+
* Redistribution and use in source and binary forms, with or without
7+
* modification, are permitted provided that the following conditions are met:
8+
*
9+
* 1. Redistributions of source code must retain the above copyright notice,
10+
* this list of conditions and the following disclaimer.
11+
* 2. Redistributions in binary form must reproduce the above copyright notice,
12+
* this list of conditions and the following disclaimer in the documentation
13+
* and/or other materials provided with the distribution.
14+
* 3. Neither the name of STMicroelectronics nor the names of its contributors
15+
* may be used to endorse or promote products derived from this software
16+
* without specific prior written permission.
17+
*
18+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28+
*******************************************************************************
29+
* Automatically generated from STM32F030F4Px.xml
30+
*/
31+
#include "Arduino.h"
32+
#include "PeripheralPins.h"
33+
34+
/* =====
35+
* Note: Commented lines are alternative possibilities which are not used per default.
36+
* If you change them, you will have to know what you do
37+
* =====
38+
*/
39+
40+
41+
//*** ADC ***
42+
#ifdef HAL_ADC_MODULE_ENABLED
43+
const PinMap PinMap_ADC[] = {
44+
{PA_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC_IN0
45+
{PA_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC_IN1
46+
{PA_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC_IN2
47+
{PA_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC_IN3
48+
{PA_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC_IN4
49+
{PA_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC_IN5 - LED
50+
{PA_6, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC_IN6
51+
{PA_7, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC_IN7
52+
{PB_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC_IN9
53+
{NC, NP, 0}
54+
};
55+
#endif
56+
57+
//*** DAC ***
58+
//*** No DAC ***
59+
60+
//*** I2C ***
61+
62+
#ifdef HAL_I2C_MODULE_ENABLED
63+
const PinMap PinMap_I2C_SDA[] = {
64+
{PA_10, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
65+
{NC, NP, 0}
66+
};
67+
#endif
68+
69+
#ifdef HAL_I2C_MODULE_ENABLED
70+
const PinMap PinMap_I2C_SCL[] = {
71+
{PA_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
72+
{NC, NP, 0}
73+
};
74+
#endif
75+
76+
//*** PWM ***
77+
78+
#ifdef HAL_TIM_MODULE_ENABLED
79+
const PinMap PinMap_PWM[] = {
80+
{PA_4, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM14, 1, 0)}, // TIM14_CH1
81+
{PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 1, 0)}, // TIM3_CH1
82+
// {PA_6, TIM16, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM16, 1, 0)}, // TIM16_CH1
83+
// {PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 1, 1)}, // TIM1_CH1N
84+
{PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 2, 0)}, // TIM3_CH2
85+
// {PA_7, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM14, 1, 0)}, // TIM14_CH1
86+
// {PA_7, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM17, 1, 0)}, // TIM17_CH1
87+
{PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 2, 0)}, // TIM1_CH2
88+
{PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 3, 0)}, // TIM1_CH3
89+
// {PB_1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 3, 1)}, // TIM1_CH3N
90+
{PB_1, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 4, 0)}, // TIM3_CH4
91+
// {PB_1, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_TIM14, 1, 0)}, // TIM14_CH1
92+
{NC, NP, 0}
93+
};
94+
#endif
95+
96+
//*** SERIAL ***
97+
98+
#ifdef HAL_UART_MODULE_ENABLED
99+
const PinMap PinMap_UART_TX[] = {
100+
{PA_2, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)},
101+
{PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)},
102+
{PA_14, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)},
103+
{NC, NP, 0}
104+
};
105+
#endif
106+
107+
#ifdef HAL_UART_MODULE_ENABLED
108+
const PinMap PinMap_UART_RX[] = {
109+
{PA_3, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)},
110+
{PA_10, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)},
111+
{NC, NP, 0}
112+
};
113+
#endif
114+
115+
#ifdef HAL_UART_MODULE_ENABLED
116+
const PinMap PinMap_UART_RTS[] = {
117+
{PA_1, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)},
118+
{NC, NP, 0}
119+
};
120+
#endif
121+
122+
#ifdef HAL_UART_MODULE_ENABLED
123+
const PinMap PinMap_UART_CTS[] = {
124+
{PA_0, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)},
125+
{NC, NP, 0}
126+
};
127+
#endif
128+
129+
//*** SPI ***
130+
131+
#ifdef HAL_SPI_MODULE_ENABLED
132+
const PinMap PinMap_SPI_MOSI[] = {
133+
{PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
134+
{NC, NP, 0}
135+
};
136+
#endif
137+
138+
#ifdef HAL_SPI_MODULE_ENABLED
139+
const PinMap PinMap_SPI_MISO[] = {
140+
{PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
141+
{NC, NP, 0}
142+
};
143+
#endif
144+
145+
#ifdef HAL_SPI_MODULE_ENABLED
146+
const PinMap PinMap_SPI_SCLK[] = {
147+
{PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)}, // LED
148+
{NC, NP, 0}
149+
};
150+
#endif
151+
152+
#ifdef HAL_SPI_MODULE_ENABLED
153+
const PinMap PinMap_SPI_SSEL[] = {
154+
{PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)},
155+
{NC, NP, 0}
156+
};
157+
#endif
158+
159+
160+
//*** CAN ***
161+
//*** No CAN_RD ***
162+
163+
//*** No CAN_TD ***
164+
165+
//*** ETHERNET ***
166+
167+
//*** No Ethernet ***
168+
169+
//*** QUADSPI ***
170+
171+
//*** No QUADSPI ***

Diff for: variants/DEMO_F030F4/PinNamesVar.h

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/* SYS_WKUP */
2+
#ifdef PWR_WAKEUP_PIN1
3+
SYS_WKUP1 = PA_0,
4+
#endif
5+
#ifdef PWR_WAKEUP_PIN2
6+
SYS_WKUP2 = NC,
7+
#endif
8+
#ifdef PWR_WAKEUP_PIN3
9+
SYS_WKUP3 = NC,
10+
#endif
11+
#ifdef PWR_WAKEUP_PIN4
12+
SYS_WKUP4 = NC,
13+
#endif
14+
#ifdef PWR_WAKEUP_PIN5
15+
SYS_WKUP5 = NC,
16+
#endif
17+
#ifdef PWR_WAKEUP_PIN6
18+
SYS_WKUP6 = NC,
19+
#endif
20+
#ifdef PWR_WAKEUP_PIN7
21+
SYS_WKUP7 = NC,
22+
#endif
23+
#ifdef PWR_WAKEUP_PIN8
24+
SYS_WKUP8 = NC,
25+
#endif

0 commit comments

Comments
 (0)