Skip to content

Commit 0c6f27e

Browse files
authored
Merge pull request #82 from gfroerli/new-features
Introduce new Cargo features generated with cube-parse
2 parents e9f54e2 + 76b3abb commit 0c6f27e

File tree

2 files changed

+191
-16
lines changed

2 files changed

+191
-16
lines changed

Cargo.toml

Lines changed: 188 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,28 +51,203 @@ usbd-serial = "0.1.0"
5151
# Miscellaneaous features
5252
rt = ["stm32l0/rt"]
5353
disable-linker-script = []
54-
# MCUs
54+
55+
# STM32L0 subfamilies
56+
# (Warning: Some peripherals, e.g. GPIO, don't follow this subfamily grouping.)
5557
stm32l0x1 = ["stm32l0/stm32l0x1"]
5658
stm32l0x2 = ["stm32l0/stm32l0x2"]
5759
stm32l0x3 = ["stm32l0/stm32l0x3"]
60+
61+
# Legacy features (don't use those anymore)
5862
stm32l052 = ["stm32l0x2"]
59-
stm32l053 = ["stm32l0x3"]
60-
stm32l062 = ["stm32l0x2"]
6163
stm32l072 = ["stm32l0x2"]
6264
stm32l082 = ["stm32l0x2"]
63-
# Chip packages
64-
lqfp32 = []
65-
lqfp48 = []
66-
lqfp64 = []
67-
lqfp100 = []
68-
tfbga64 = []
69-
ufbga64 = []
70-
ufbg100 = []
65+
66+
# Features based on the GPIO peripheral version.
67+
# This determines the pin function mapping of the MCU.
68+
io-STM32L021 = []
69+
io-STM32L031 = []
70+
io-STM32L051 = []
71+
io-STM32L071 = []
72+
73+
# Physical packages
74+
ewlcsp49 = []
75+
lqfp32 = []
76+
lqfp48 = []
77+
lqfp64 = []
78+
lqfp100 = []
79+
tfbga64 = []
80+
tssop14 = []
81+
tssop20 = []
82+
ufbga64 = []
83+
ufbga100 = []
84+
ufqfpn20 = []
85+
ufqfpn28 = []
7186
ufqfpn32 = []
7287
ufqfpn48 = []
73-
wlcsp36 = []
74-
wlcsp49 = []
88+
wlcsp25 = []
89+
wlcsp36 = []
90+
wlcsp49 = []
7591

92+
# MCUs
93+
mcu-STM32L010C6Tx = ["io-STM32L031", "lqfp48"]
94+
mcu-STM32L010F4Px = ["io-STM32L021", "tssop20"]
95+
mcu-STM32L010K4Tx = ["io-STM32L021", "lqfp32"]
96+
mcu-STM32L010K8Tx = ["io-STM32L051", "lqfp32"]
97+
mcu-STM32L010R8Tx = ["io-STM32L051", "lqfp64"]
98+
mcu-STM32L010RBTx = ["io-STM32L071", "lqfp64"]
99+
mcu-STM32L011D3Px = ["io-STM32L021", "stm32l0x1", "tssop14"]
100+
mcu-STM32L011D4Px = ["io-STM32L021", "stm32l0x1", "tssop14"]
101+
mcu-STM32L011E3Yx = ["io-STM32L021", "stm32l0x1", "wlcsp25"]
102+
mcu-STM32L011E4Yx = ["io-STM32L021", "stm32l0x1", "wlcsp25"]
103+
mcu-STM32L011F3Px = ["io-STM32L021", "stm32l0x1", "tssop20"]
104+
mcu-STM32L011F3Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn20"]
105+
mcu-STM32L011F4Px = ["io-STM32L021", "stm32l0x1", "tssop20"]
106+
mcu-STM32L011F4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn20"]
107+
mcu-STM32L011G3Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn28"]
108+
mcu-STM32L011G4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn28"]
109+
mcu-STM32L011K3Tx = ["io-STM32L021", "stm32l0x1", "lqfp32"]
110+
mcu-STM32L011K3Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn32"]
111+
mcu-STM32L011K4Tx = ["io-STM32L021", "stm32l0x1", "lqfp32"]
112+
mcu-STM32L011K4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn32"]
113+
mcu-STM32L021D4Px = ["io-STM32L021", "stm32l0x1", "tssop14"]
114+
mcu-STM32L021F4Px = ["io-STM32L021", "stm32l0x1", "tssop20"]
115+
mcu-STM32L021F4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn20"]
116+
mcu-STM32L021G4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn28"]
117+
mcu-STM32L021K4Tx = ["io-STM32L021", "stm32l0x1", "lqfp32"]
118+
mcu-STM32L021K4Ux = ["io-STM32L021", "stm32l0x1", "ufqfpn32"]
119+
mcu-STM32L031C4Tx = ["io-STM32L031", "stm32l0x1", "lqfp48"]
120+
mcu-STM32L031C6Tx = ["io-STM32L031", "stm32l0x1", "lqfp48"]
121+
mcu-STM32L031C6Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn48"]
122+
mcu-STM32L031E4Yx = ["io-STM32L031", "stm32l0x1", "wlcsp25"]
123+
mcu-STM32L031E6Yx = ["io-STM32L031", "stm32l0x1", "wlcsp25"]
124+
mcu-STM32L031F4Px = ["io-STM32L031", "stm32l0x1", "tssop20"]
125+
mcu-STM32L031F6Px = ["io-STM32L031", "stm32l0x1", "tssop20"]
126+
mcu-STM32L031G4Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn28"]
127+
mcu-STM32L031G6Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn28"]
128+
mcu-STM32L031G6UxS = ["io-STM32L031", "stm32l0x1", "ufqfpn28"]
129+
mcu-STM32L031K4Tx = ["io-STM32L031", "stm32l0x1", "lqfp32"]
130+
mcu-STM32L031K4Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn32"]
131+
mcu-STM32L031K6Tx = ["io-STM32L031", "stm32l0x1", "lqfp32"]
132+
mcu-STM32L031K6Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn32"]
133+
mcu-STM32L041C4Tx = ["io-STM32L031", "stm32l0x1", "lqfp48"]
134+
mcu-STM32L041C6Tx = ["io-STM32L031", "stm32l0x1", "lqfp48"]
135+
mcu-STM32L041E6Yx = ["io-STM32L031", "stm32l0x1", "wlcsp25"]
136+
mcu-STM32L041F6Px = ["io-STM32L031", "stm32l0x1", "tssop20"]
137+
mcu-STM32L041G6Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn28"]
138+
mcu-STM32L041G6UxS = ["io-STM32L031", "stm32l0x1", "ufqfpn28"]
139+
mcu-STM32L041K6Tx = ["io-STM32L031", "stm32l0x1", "lqfp32"]
140+
mcu-STM32L041K6Ux = ["io-STM32L031", "stm32l0x1", "ufqfpn32"]
141+
mcu-STM32L051C6Tx = ["io-STM32L051", "stm32l0x1", "lqfp48"]
142+
mcu-STM32L051C8Tx = ["io-STM32L051", "stm32l0x1", "lqfp48"]
143+
mcu-STM32L051K6Tx = ["io-STM32L051", "stm32l0x1", "lqfp32"]
144+
mcu-STM32L051K6Ux = ["io-STM32L051", "stm32l0x1", "ufqfpn32"]
145+
mcu-STM32L051K8Tx = ["io-STM32L051", "stm32l0x1", "lqfp32"]
146+
mcu-STM32L051K8Ux = ["io-STM32L051", "stm32l0x1", "ufqfpn32"]
147+
mcu-STM32L051R6Hx = ["io-STM32L051", "stm32l0x1", "tfbga64"]
148+
mcu-STM32L051R6Tx = ["io-STM32L051", "stm32l0x1", "lqfp64"]
149+
mcu-STM32L051R8Hx = ["io-STM32L051", "stm32l0x1", "tfbga64"]
150+
mcu-STM32L051R8Tx = ["io-STM32L051", "stm32l0x1", "lqfp64"]
151+
mcu-STM32L051T6Yx = ["io-STM32L051", "stm32l0x1", "wlcsp36"]
152+
mcu-STM32L051T8Yx = ["io-STM32L051", "stm32l0x1", "wlcsp36"]
153+
mcu-STM32L052C6Tx = ["io-STM32L051", "stm32l0x2", "lqfp48"]
154+
mcu-STM32L052C8Tx = ["io-STM32L051", "stm32l0x2", "lqfp48"]
155+
mcu-STM32L052K6Tx = ["io-STM32L051", "stm32l0x2", "lqfp32"]
156+
mcu-STM32L052K6Ux = ["io-STM32L051", "stm32l0x2", "ufqfpn32"]
157+
mcu-STM32L052K8Tx = ["io-STM32L051", "stm32l0x2", "lqfp32"]
158+
mcu-STM32L052K8Ux = ["io-STM32L051", "stm32l0x2", "ufqfpn32"]
159+
mcu-STM32L052R6Hx = ["io-STM32L051", "stm32l0x2", "tfbga64"]
160+
mcu-STM32L052R6Tx = ["io-STM32L051", "stm32l0x2", "lqfp64"]
161+
mcu-STM32L052R8Hx = ["io-STM32L051", "stm32l0x2", "tfbga64"]
162+
mcu-STM32L052R8Tx = ["io-STM32L051", "stm32l0x2", "lqfp64"]
163+
mcu-STM32L052T6Yx = ["io-STM32L051", "stm32l0x2", "wlcsp36"]
164+
mcu-STM32L052T8Fx = ["io-STM32L051", "stm32l0x2", "wlcsp36"]
165+
mcu-STM32L052T8Yx = ["io-STM32L051", "stm32l0x2", "wlcsp36"]
166+
mcu-STM32L053C6Tx = ["io-STM32L051", "stm32l0x3", "lqfp48"]
167+
mcu-STM32L053C8Tx = ["io-STM32L051", "stm32l0x3", "lqfp48"]
168+
mcu-STM32L053R6Hx = ["io-STM32L051", "stm32l0x3", "tfbga64"]
169+
mcu-STM32L053R6Tx = ["io-STM32L051", "stm32l0x3", "lqfp64"]
170+
mcu-STM32L053R8Hx = ["io-STM32L051", "stm32l0x3", "tfbga64"]
171+
mcu-STM32L053R8Tx = ["io-STM32L051", "stm32l0x3", "lqfp64"]
172+
mcu-STM32L062K8Tx = ["io-STM32L051", "stm32l0x2", "lqfp32"]
173+
mcu-STM32L062K8Ux = ["io-STM32L051", "stm32l0x2", "ufqfpn32"]
174+
mcu-STM32L063C8Tx = ["io-STM32L051", "stm32l0x3", "lqfp48"]
175+
mcu-STM32L063R8Tx = ["io-STM32L051", "stm32l0x3", "lqfp64"]
176+
mcu-STM32L071C8Tx = ["io-STM32L071", "stm32l0x1", "lqfp48"]
177+
mcu-STM32L071CBTx = ["io-STM32L071", "stm32l0x1", "lqfp48"]
178+
mcu-STM32L071CBYx = ["io-STM32L071", "stm32l0x1", "wlcsp49"]
179+
mcu-STM32L071CZTx = ["io-STM32L071", "stm32l0x1", "lqfp48"]
180+
mcu-STM32L071CZYx = ["io-STM32L071", "stm32l0x1", "wlcsp49"]
181+
mcu-STM32L071K8Ux = ["io-STM32L071", "stm32l0x1", "ufqfpn32"]
182+
mcu-STM32L071KBTx = ["io-STM32L071", "stm32l0x1", "lqfp32"]
183+
mcu-STM32L071KBUx = ["io-STM32L071", "stm32l0x1", "ufqfpn32"]
184+
mcu-STM32L071KZTx = ["io-STM32L071", "stm32l0x1", "lqfp32"]
185+
mcu-STM32L071KZUx = ["io-STM32L071", "stm32l0x1", "ufqfpn32"]
186+
mcu-STM32L071RBHx = ["io-STM32L071", "stm32l0x1", "tfbga64"]
187+
mcu-STM32L071RBTx = ["io-STM32L071", "stm32l0x1", "lqfp64"]
188+
mcu-STM32L071RZHx = ["io-STM32L071", "stm32l0x1", "tfbga64"]
189+
mcu-STM32L071RZTx = ["io-STM32L071", "stm32l0x1", "lqfp64"]
190+
mcu-STM32L071V8Ix = ["io-STM32L071", "stm32l0x1", "ufbga100"]
191+
mcu-STM32L071V8Tx = ["io-STM32L071", "stm32l0x1", "lqfp100"]
192+
mcu-STM32L071VBIx = ["io-STM32L071", "stm32l0x1", "ufbga100"]
193+
mcu-STM32L071VBTx = ["io-STM32L071", "stm32l0x1", "lqfp100"]
194+
mcu-STM32L071VZIx = ["io-STM32L071", "stm32l0x1", "ufbga100"]
195+
mcu-STM32L071VZTx = ["io-STM32L071", "stm32l0x1", "lqfp100"]
196+
mcu-STM32L072CBTx = ["io-STM32L071", "stm32l0x2", "lqfp48"]
197+
mcu-STM32L072CBYx = ["io-STM32L071", "stm32l0x2", "wlcsp49"]
198+
mcu-STM32L072CZEx = ["io-STM32L071", "stm32l0x2", "ewlcsp49"]
199+
mcu-STM32L072CZTx = ["io-STM32L071", "stm32l0x2", "lqfp48"]
200+
mcu-STM32L072CZYx = ["io-STM32L071", "stm32l0x2", "wlcsp49"]
201+
mcu-STM32L072KBTx = ["io-STM32L071", "stm32l0x2", "lqfp32"]
202+
mcu-STM32L072KBUx = ["io-STM32L071", "stm32l0x2", "ufqfpn32"]
203+
mcu-STM32L072KZTx = ["io-STM32L071", "stm32l0x2", "lqfp32"]
204+
mcu-STM32L072KZUx = ["io-STM32L071", "stm32l0x2", "ufqfpn32"]
205+
mcu-STM32L072RBHx = ["io-STM32L071", "stm32l0x2", "tfbga64"]
206+
mcu-STM32L072RBIx = ["io-STM32L071", "stm32l0x2", "ufbga64"]
207+
mcu-STM32L072RBTx = ["io-STM32L071", "stm32l0x2", "lqfp64"]
208+
mcu-STM32L072RZHx = ["io-STM32L071", "stm32l0x2", "tfbga64"]
209+
mcu-STM32L072RZIx = ["io-STM32L071", "stm32l0x2", "ufbga64"]
210+
mcu-STM32L072RZTx = ["io-STM32L071", "stm32l0x2", "lqfp64"]
211+
mcu-STM32L072V8Ix = ["io-STM32L071", "stm32l0x2", "ufbga100"]
212+
mcu-STM32L072V8Tx = ["io-STM32L071", "stm32l0x2", "lqfp100"]
213+
mcu-STM32L072VBIx = ["io-STM32L071", "stm32l0x2", "ufbga100"]
214+
mcu-STM32L072VBTx = ["io-STM32L071", "stm32l0x2", "lqfp100"]
215+
mcu-STM32L072VZIx = ["io-STM32L071", "stm32l0x2", "ufbga100"]
216+
mcu-STM32L072VZTx = ["io-STM32L071", "stm32l0x2", "lqfp100"]
217+
mcu-STM32L073CBTx = ["io-STM32L071", "stm32l0x3", "lqfp48"]
218+
mcu-STM32L073CZTx = ["io-STM32L071", "stm32l0x3", "lqfp48"]
219+
mcu-STM32L073RBHx = ["io-STM32L071", "stm32l0x3", "tfbga64"]
220+
mcu-STM32L073RBTx = ["io-STM32L071", "stm32l0x3", "lqfp64"]
221+
mcu-STM32L073RZHx = ["io-STM32L071", "stm32l0x3", "tfbga64"]
222+
mcu-STM32L073RZIx = ["io-STM32L071", "stm32l0x3", "ufbga64"]
223+
mcu-STM32L073RZTx = ["io-STM32L071", "stm32l0x3", "lqfp64"]
224+
mcu-STM32L073V8Ix = ["io-STM32L071", "stm32l0x3", "ufbga100"]
225+
mcu-STM32L073V8Tx = ["io-STM32L071", "stm32l0x3", "lqfp100"]
226+
mcu-STM32L073VBIx = ["io-STM32L071", "stm32l0x3", "ufbga100"]
227+
mcu-STM32L073VBTx = ["io-STM32L071", "stm32l0x3", "lqfp100"]
228+
mcu-STM32L073VZIx = ["io-STM32L071", "stm32l0x3", "ufbga100"]
229+
mcu-STM32L073VZTx = ["io-STM32L071", "stm32l0x3", "lqfp100"]
230+
mcu-STM32L081CBTx = ["io-STM32L071", "stm32l0x1", "lqfp48"]
231+
mcu-STM32L081CZTx = ["io-STM32L071", "stm32l0x1", "lqfp48"]
232+
mcu-STM32L081KZTx = ["io-STM32L071", "stm32l0x1", "lqfp32"]
233+
mcu-STM32L081KZUx = ["io-STM32L071", "stm32l0x1", "ufqfpn32"]
234+
mcu-STM32L082CZYx = ["io-STM32L071", "stm32l0x2", "wlcsp49"]
235+
mcu-STM32L082KBTx = ["io-STM32L071", "stm32l0x2", "lqfp32"]
236+
mcu-STM32L082KBUx = ["io-STM32L071", "stm32l0x2", "ufqfpn32"]
237+
mcu-STM32L082KZTx = ["io-STM32L071", "stm32l0x2", "lqfp32"]
238+
mcu-STM32L082KZUx = ["io-STM32L071", "stm32l0x2", "ufqfpn32"]
239+
mcu-STM32L083CBTx = ["io-STM32L071", "stm32l0x3", "lqfp48"]
240+
mcu-STM32L083CZTx = ["io-STM32L071", "stm32l0x3", "lqfp48"]
241+
mcu-STM32L083RBHx = ["io-STM32L071", "stm32l0x3", "tfbga64"]
242+
mcu-STM32L083RBTx = ["io-STM32L071", "stm32l0x3", "lqfp64"]
243+
mcu-STM32L083RZHx = ["io-STM32L071", "stm32l0x3", "tfbga64"]
244+
mcu-STM32L083RZTx = ["io-STM32L071", "stm32l0x3", "lqfp64"]
245+
mcu-STM32L083V8Ix = ["io-STM32L071", "stm32l0x3", "ufbga100"]
246+
mcu-STM32L083V8Tx = ["io-STM32L071", "stm32l0x3", "lqfp100"]
247+
mcu-STM32L083VBIx = ["io-STM32L071", "stm32l0x3", "ufbga100"]
248+
mcu-STM32L083VBTx = ["io-STM32L071", "stm32l0x3", "lqfp100"]
249+
mcu-STM32L083VZIx = ["io-STM32L071", "stm32l0x3", "ufbga100"]
250+
mcu-STM32L083VZTx = ["io-STM32L071", "stm32l0x3", "lqfp100"]
76251

77252
[profile.dev]
78253
codegen-units = 1

src/adc.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ adc_pins! {
247247
feature = "lqfp100",
248248
feature = "tfbga64",
249249
feature = "ufbga64",
250-
feature = "ufbg100",
250+
feature = "ufbga100",
251251
feature = "wlcsp49",
252252
),
253253
))]
@@ -271,7 +271,7 @@ adc_pins! {
271271

272272
#[cfg(all(
273273
feature = "stm32l072",
274-
any(feature = "lqfp64", feature = "lqfp100", feature = "ufbg100",),
274+
any(feature = "lqfp64", feature = "lqfp100", feature = "ufbga100",),
275275
))]
276276
adc_pins! {
277277
Channel13: (gpioc::PC3<Analog>, 13u8),
@@ -290,7 +290,7 @@ adc_pins! {
290290
feature = "lqfp100",
291291
feature = "tfbga64",
292292
feature = "ufbga64",
293-
feature = "ufbg100",
293+
feature = "ufbga100",
294294
),
295295
))]
296296
adc_pins! {

0 commit comments

Comments
 (0)