From aa9cda492d5682d670b3d057ad40da7c22a64329 Mon Sep 17 00:00:00 2001 From: Rasmus Melchior Jacobsen Date: Sat, 25 Mar 2023 12:44:41 +0100 Subject: [PATCH] Remove custom otp memory kind --- stm32-metapac-gen/res/src/metadata.rs | 1 - stm32-metapac-gen/src/data.rs | 2 -- stm32-metapac-gen/src/lib.rs | 15 ++++++++++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/stm32-metapac-gen/res/src/metadata.rs b/stm32-metapac-gen/res/src/metadata.rs index 1cbdfff..2342765 100644 --- a/stm32-metapac-gen/res/src/metadata.rs +++ b/stm32-metapac-gen/res/src/metadata.rs @@ -30,7 +30,6 @@ pub struct FlashSettings { pub enum MemoryRegionKind { Flash, Ram, - Otp, } #[derive(Debug, Eq, PartialEq, Clone)] diff --git a/stm32-metapac-gen/src/data.rs b/stm32-metapac-gen/src/data.rs index bc3ccc6..38e85d6 100644 --- a/stm32-metapac-gen/src/data.rs +++ b/stm32-metapac-gen/src/data.rs @@ -32,8 +32,6 @@ pub enum MemoryRegionKind { Flash, #[serde(rename = "ram")] Ram, - #[serde(rename = "otp")] - Otp, } #[derive(Debug, Eq, PartialEq, Clone, Deserialize)] diff --git a/stm32-metapac-gen/src/lib.rs b/stm32-metapac-gen/src/lib.rs index f5795e7..c59fff9 100644 --- a/stm32-metapac-gen/src/lib.rs +++ b/stm32-metapac-gen/src/lib.rs @@ -120,7 +120,7 @@ impl Gen { let flash_regions: Vec<&MemoryRegion> = chip .memory .iter() - .filter(|x| x.kind == MemoryRegionKind::Flash) + .filter(|x| x.kind == MemoryRegionKind::Flash && x.name.starts_with("BANK_")) .collect(); let first_flash = flash_regions.first().unwrap(); let total_flash_size = flash_regions @@ -343,7 +343,6 @@ fn stringify(metadata: T) -> String { metadata = metadata.replace(": [", ": &["); metadata = metadata.replace("kind: Ram", "kind: MemoryRegionKind::Ram"); metadata = metadata.replace("kind: Flash", "kind: MemoryRegionKind::Flash"); - metadata = metadata.replace("kind: Otp", "kind: MemoryRegionKind::Otp"); metadata } @@ -356,14 +355,20 @@ fn gen_opts() -> generate::Options { fn gen_memory_x(out_dir: &Path, chip: &Chip) { let mut memory_x = String::new(); - let flash = chip.memory.iter().filter(|r| r.kind == MemoryRegionKind::Flash); + let flash = chip + .memory + .iter() + .filter(|r| r.kind == MemoryRegionKind::Flash && r.name.starts_with("BANK_")); let (flash_address, flash_size) = flash .clone() .map(|r| (r.address, r.size)) .reduce(|acc, el| (u32::min(acc.0, el.0), acc.1 + el.1)) .unwrap(); let ram = chip.memory.iter().find(|r| r.kind == MemoryRegionKind::Ram).unwrap(); - let otp = chip.memory.iter().find(|r| r.kind == MemoryRegionKind::Otp); + let otp = chip + .memory + .iter() + .find(|r| r.kind == MemoryRegionKind::Flash && r.name == "OTP"); write!(memory_x, "MEMORY\n{{\n").unwrap(); writeln!( @@ -371,7 +376,7 @@ fn gen_memory_x(out_dir: &Path, chip: &Chip) { " FLASH : ORIGIN = 0x{:08x}, LENGTH = {:>4}K /* {} */", flash_address, flash_size / 1024, - flash.map(|x| x.name.as_ref()).collect::>().join(", ") + flash.map(|x| x.name.as_ref()).collect::>().join(" + ") ) .unwrap(); writeln!(