aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-stm32/build.rs12
-rw-r--r--embassy-stm32/src/flash/f4.rs10
2 files changed, 14 insertions, 8 deletions
diff --git a/embassy-stm32/build.rs b/embassy-stm32/build.rs
index 2a3213c0c..946aa0399 100644
--- a/embassy-stm32/build.rs
+++ b/embassy-stm32/build.rs
@@ -56,17 +56,13 @@ fn main() {
56 let dual_bank_selected = env::var("CARGO_FEATURE_DUAL_BANK").is_ok(); 56 let dual_bank_selected = env::var("CARGO_FEATURE_DUAL_BANK").is_ok();
57 57
58 let single_bank_memory = METADATA.memory.iter().find(|mem| { 58 let single_bank_memory = METADATA.memory.iter().find(|mem| {
59 mem.iter() 59 mem.iter().any(|region| region.name.contains("BANK_1"))
60 .filter(|region| region.kind == MemoryRegionKind::Flash) 60 && !mem.iter().any(|region| region.name.contains("BANK_2"))
61 .count()
62 == 1
63 }); 61 });
64 62
65 let dual_bank_memory = METADATA.memory.iter().find(|mem| { 63 let dual_bank_memory = METADATA.memory.iter().find(|mem| {
66 mem.iter() 64 mem.iter().any(|region| region.name.contains("BANK_1"))
67 .filter(|region| region.kind == MemoryRegionKind::Flash) 65 && mem.iter().any(|region| region.name.contains("BANK_2"))
68 .count()
69 == 2
70 }); 66 });
71 67
72 cfgs.set( 68 cfgs.set(
diff --git a/embassy-stm32/src/flash/f4.rs b/embassy-stm32/src/flash/f4.rs
index 687eabaeb..ba3067556 100644
--- a/embassy-stm32/src/flash/f4.rs
+++ b/embassy-stm32/src/flash/f4.rs
@@ -555,3 +555,13 @@ mod tests {
555 assert_sector(0x17, FlashBank::Bank2, 7, 0x080E_0000, LARGE_SECTOR_SIZE, 0x080F_FFFF); 555 assert_sector(0x17, FlashBank::Bank2, 7, 0x080E_0000, LARGE_SECTOR_SIZE, 0x080F_FFFF);
556 } 556 }
557} 557}
558
559#[cfg(all(bank_setup_configurable))]
560pub(crate) fn check_bank_setup() {
561 if cfg!(feature = "single-bank") && pac::FLASH.optcr().read().db1m() {
562 panic!("Embassy is configured as single-bank, but the hardware is running in dual-bank mode. Change the hardware by changing the db1m value in the user option bytes or configure embassy to use dual-bank config");
563 }
564 if cfg!(feature = "dual-bank") && !pac::FLASH.optcr().read().db1m() {
565 panic!("Embassy is configured as dual-bank, but the hardware is running in single-bank mode. Change the hardware by changing the db1m value in the user option bytes or configure embassy to use single-bank config");
566 }
567}