diff options
| -rw-r--r-- | embassy-stm32/build.rs | 12 | ||||
| -rw-r--r-- | embassy-stm32/src/flash/f4.rs | 10 |
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))] | ||
| 560 | pub(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 | } | ||
