Skip to content

Commit 169e382

Browse files
authored
Merge pull request #601 from embassy-rs/updat-esources
Update stm32-data-sources.
2 parents 9e090b9 + f5e92d6 commit 169e382

File tree

4 files changed

+31
-19
lines changed

4 files changed

+31
-19
lines changed

d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ set -e
44
cd $(dirname $0)
55

66
CMD=$1
7-
REV=709c1060ac2ec57f6042f2b4eb9cf8c1821a6c57
7+
REV=1659e761beb29d3949bd1ec72039c3ce5f6bdf6c
88
shift
99

1010
case "$CMD" in

stm32-data-gen/src/chips.rs

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -210,19 +210,29 @@ pub fn parse_groups() -> Result<(HashMap<String, Chip>, Vec<ChipGroup>), anyhow:
210210
Ok((chips, chip_groups))
211211
}
212212

213-
static NOPELIST: &[&str] = &[
213+
static NOPELIST: RegexMap<()> = RegexMap::new(&[
214214
// Not supported, not planned unless someone wants to do it.
215-
"STM32MP",
215+
("STM32MP.*", ()),
216+
// TODO, PRs welcome :)
217+
("STM32C0[579].*", ()),
218+
("STM32U3.*", ()),
219+
("STM32N6.*", ()),
220+
("STM32G41[14].*", ()),
221+
("STM32G4.*xZ", ()),
222+
("STM32WBA6.*", ()),
223+
("STM32WB0.*", ()),
224+
("STM32WL3.*", ()),
216225
// Does not exist in ST website. No datasheet, no RM.
217-
"STM32GBK",
218-
"STM32L485",
226+
("STM32GBK.*", ()),
227+
("STM32L485.*", ()),
219228
// STM32WxM modules. These are based on a chip that's supported on its own,
220229
// not sure why we want a separate target for it.
221-
"STM32WL5M",
222-
"STM32WB1M",
223-
"STM32WB3M",
224-
"STM32WB5M",
225-
];
230+
("STM32WL5M.*", ()),
231+
("STM32WB1M.*", ()),
232+
("STM32WB3M.*", ()),
233+
("STM32WB5M.*", ()),
234+
("STM32WBA5M.*", ()),
235+
]);
226236

227237
fn parse_group(
228238
f: std::path::PathBuf,
@@ -231,10 +241,8 @@ fn parse_group(
231241
) -> anyhow::Result<()> {
232242
let ff = f.file_name().unwrap().to_string_lossy();
233243

234-
for nope in NOPELIST {
235-
if ff.contains(nope) {
236-
return Ok(());
237-
}
244+
if NOPELIST.get(ff.split('.').next().unwrap()).is_some() {
245+
return Ok(());
238246
}
239247

240248
let parsed: xml::Mcu = quick_xml::de::from_str(&std::fs::read_to_string(f)?)?;
@@ -294,6 +302,7 @@ fn parse_group(
294302
let mut package_pins: Vec<stm32_data_serde::chip::PackagePin> = package_pins
295303
.into_iter()
296304
.map(|(position, mut signals)| {
305+
signals.retain(|s| s != "NC");
297306
signals.sort();
298307
stm32_data_serde::chip::PackagePin { position, signals }
299308
})

stm32-data-gen/src/interrupts.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,9 @@ impl ChipInterrupts {
343343

344344
for s in ss {
345345
if !known.contains(&s.clone()) {
346-
panic!("Unknown signal {s} for peri {p}, known={known:?}, parts={parts:?}");
346+
panic!(
347+
"Unknown signal {s} for peri {p} chip {chip_name}, known={known:?}, parts={parts:?}"
348+
);
347349
}
348350
trace!(" signal: {} {}", p, s);
349351
interrupt_signals.insert((p.clone(), s));
@@ -496,7 +498,7 @@ fn valid_signals(peri: &str) -> Vec<String> {
496498
&["FLT0", "FLT1", "FLT2", "FLT3", "FLT4", "FLT5", "FLT6", "FLT7"],
497499
),
498500
("MDF", &["FLT0", "FLT1", "FLT2", "FLT3", "FLT4", "FLT5", "FLT6", "FLT7"]),
499-
("PWR", &["S3WU", "WKUP"]),
501+
("PWR", &["S3WU", "WKUP", "PVD"]),
500502
("GTZC", &["GLOBAL", "ILA"]),
501503
("WWDG", &["GLOBAL", "RST"]),
502504
("USB_OTG_FS", &["GLOBAL", "EP1_OUT", "EP1_IN", "WKUP"]),
@@ -505,6 +507,7 @@ fn valid_signals(peri: &str) -> Vec<String> {
505507
("GPU2D", &["ER"]),
506508
("SAI", &["A", "B"]),
507509
("ADF", &["FLT0"]),
510+
("RAMECC", &["ECC"]),
508511
];
509512

510513
for (prefix, signals) in IRQ_SIGNALS_MAP {

stm32-data-gen/src/perimap.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ pub static PERIMAP: RegexMap<(&str, &str, &str)> = RegexMap::new(&[
8888
(".*:DAC:dacif_v3_0", ("dac", "v4", "DAC")),
8989
(".*:DAC:WL_dacif_v3_0", ("dac", "v4", "DAC")),
9090
(".*:DAC:G4_dacif_v4_0", ("dac", "v7", "DAC")),
91-
(".*:DAC:dacif_v5_0", ("dac", "v6", "DAC")),
91+
(".*:DAC:dacif_v5_0.*", ("dac", "v6", "DAC")),
9292
(".*:ADC:aditf_v2_5F1", ("adc", "f1", "ADC")),
9393
(".*:ADC:aditf5_v1_1", ("adc", "f3", "ADC")),
9494
(".*:ADC:aditf_v2_5", ("adc", "f3_v2", "ADC")),
@@ -294,8 +294,8 @@ pub static PERIMAP: RegexMap<(&str, &str, &str)> = RegexMap::new(&[
294294
("STM32H5.*:CRS:.*", ("crs", "v1", "CRS")),
295295
("STM32H7.*:CRS:.*", ("crs", "v1", "CRS")),
296296
("STM32WB.*:CRS:.*", ("crs", "v1", "CRS")),
297-
(".*SDMMC:sdmmc2_v1_0", ("sdmmc", "v2", "SDMMC")),
298-
(".*SDMMC:sdmmc2_v2_1", ("sdmmc", "v2", "SDMMC")),
297+
(".*SDMMC:sdmmc2_v1_0.*", ("sdmmc", "v2", "SDMMC")),
298+
(".*SDMMC:sdmmc2_v2_1.*", ("sdmmc", "v2", "SDMMC")),
299299
("STM32C0.*:PWR:.*", ("pwr", "c0", "PWR")),
300300
("STM32G0.*:PWR:.*", ("pwr", "g0", "PWR")),
301301
("STM32G4.*:PWR:.*", ("pwr", "g4", "PWR")),

0 commit comments

Comments
 (0)