From faf506b300291a04c534a22bec771a3106c72d16 Mon Sep 17 00:00:00 2001 From: Rasmus Melchior Jacobsen Date: Tue, 23 May 2023 22:50:41 +0200 Subject: [PATCH] Remove Drop for AltFlashLayout --- embassy-stm32/src/flash/common.rs | 1 + embassy-stm32/src/flash/f0.rs | 2 ++ embassy-stm32/src/flash/f3.rs | 2 ++ embassy-stm32/src/flash/f4.rs | 15 ++++++++------- embassy-stm32/src/flash/f7.rs | 2 ++ embassy-stm32/src/flash/h7.rs | 2 ++ embassy-stm32/src/flash/l.rs | 2 ++ 7 files changed, 19 insertions(+), 7 deletions(-) diff --git a/embassy-stm32/src/flash/common.rs b/embassy-stm32/src/flash/common.rs index 6d7f5597..a9bf3c3c 100644 --- a/embassy-stm32/src/flash/common.rs +++ b/embassy-stm32/src/flash/common.rs @@ -17,6 +17,7 @@ impl<'d> Flash<'d> { } pub fn into_regions(self) -> FlashLayout<'d> { + family::set_default_layout(); FlashLayout::new(self.release()) } diff --git a/embassy-stm32/src/flash/f0.rs b/embassy-stm32/src/flash/f0.rs index 033afecd..c6441ef1 100644 --- a/embassy-stm32/src/flash/f0.rs +++ b/embassy-stm32/src/flash/f0.rs @@ -7,6 +7,8 @@ use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; use crate::flash::Error; use crate::pac; +pub const fn set_default_layout() {} + pub const fn get_flash_regions() -> &'static [&'static FlashRegion] { &FLASH_REGIONS } diff --git a/embassy-stm32/src/flash/f3.rs b/embassy-stm32/src/flash/f3.rs index 10a09c42..4c817220 100644 --- a/embassy-stm32/src/flash/f3.rs +++ b/embassy-stm32/src/flash/f3.rs @@ -7,6 +7,8 @@ use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; use crate::flash::Error; use crate::pac; +pub const fn set_default_layout() {} + pub const fn get_flash_regions() -> &'static [&'static FlashRegion] { &FLASH_REGIONS } diff --git a/embassy-stm32/src/flash/f4.rs b/embassy-stm32/src/flash/f4.rs index 60ac62c1..63293c05 100644 --- a/embassy-stm32/src/flash/f4.rs +++ b/embassy-stm32/src/flash/f4.rs @@ -79,19 +79,20 @@ mod alt_regions { } } - impl Drop for AltFlashLayout<'_> { - fn drop(&mut self) { - unsafe { - super::lock(); - crate::pac::FLASH.optcr().modify(|r| r.set_db1m(false)) - }; - } } } #[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f469, stm32f479))] pub use alt_regions::{AltFlashLayout, ALT_FLASH_REGIONS}; +#[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f469, stm32f479))] +pub fn set_default_layout() { + unsafe { crate::pac::FLASH.optcr().modify(|r| r.set_db1m(false)) }; +} + +#[cfg(not(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f469, stm32f479)))] +pub const fn set_default_layout() {} + #[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f469, stm32f479))] pub fn get_flash_regions() -> &'static [&'static FlashRegion] { if unsafe { pac::FLASH.optcr().read().db1m() } { diff --git a/embassy-stm32/src/flash/f7.rs b/embassy-stm32/src/flash/f7.rs index 6427d5a0..ac2834a8 100644 --- a/embassy-stm32/src/flash/f7.rs +++ b/embassy-stm32/src/flash/f7.rs @@ -6,6 +6,8 @@ use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; use crate::flash::Error; use crate::pac; +pub const fn set_default_layout() {} + pub const fn get_flash_regions() -> &'static [&'static FlashRegion] { &FLASH_REGIONS } diff --git a/embassy-stm32/src/flash/h7.rs b/embassy-stm32/src/flash/h7.rs index 4f38d50c..1b163106 100644 --- a/embassy-stm32/src/flash/h7.rs +++ b/embassy-stm32/src/flash/h7.rs @@ -7,6 +7,8 @@ use super::{FlashRegion, FlashSector, BANK1_REGION, FLASH_REGIONS, WRITE_SIZE}; use crate::flash::Error; use crate::pac; +pub const fn set_default_layout() {} + const fn is_dual_bank() -> bool { FLASH_REGIONS.len() == 2 } diff --git a/embassy-stm32/src/flash/l.rs b/embassy-stm32/src/flash/l.rs index 7d9cc6ea..c94f6190 100644 --- a/embassy-stm32/src/flash/l.rs +++ b/embassy-stm32/src/flash/l.rs @@ -6,6 +6,8 @@ use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; use crate::flash::Error; use crate::pac; +pub const fn set_default_layout() {} + pub const fn get_flash_regions() -> &'static [&'static FlashRegion] { &FLASH_REGIONS }