Remove ability to set alt layout - it does not work.

This commit is contained in:
Rasmus Melchior Jacobsen 2023-05-26 15:23:36 +02:00
parent 31b364b9b0
commit fee89ed7c7
9 changed files with 29 additions and 34 deletions

View File

@ -34,7 +34,7 @@ impl<'d> Flash<'d, Async> {
} }
pub fn into_regions(self) -> FlashLayout<'d, Async> { pub fn into_regions(self) -> FlashLayout<'d, Async> {
family::set_default_layout(); assert!(family::is_default_layout());
FlashLayout::new(self.inner) FlashLayout::new(self.inner)
} }

View File

@ -30,7 +30,7 @@ impl<'d> Flash<'d, Blocking> {
impl<'d, MODE> Flash<'d, MODE> { impl<'d, MODE> Flash<'d, MODE> {
pub fn into_blocking_regions(self) -> FlashLayout<'d, Blocking> { pub fn into_blocking_regions(self) -> FlashLayout<'d, Blocking> {
family::set_default_layout(); assert!(family::is_default_layout());
FlashLayout::new(self.inner) FlashLayout::new(self.inner)
} }

View File

@ -7,7 +7,9 @@ use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE};
use crate::flash::Error; use crate::flash::Error;
use crate::pac; use crate::pac;
pub const fn set_default_layout() {} pub const fn is_default_layout() -> bool {
true
}
pub const fn get_flash_regions() -> &'static [&'static FlashRegion] { pub const fn get_flash_regions() -> &'static [&'static FlashRegion] {
&FLASH_REGIONS &FLASH_REGIONS

View File

@ -7,7 +7,9 @@ use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE};
use crate::flash::Error; use crate::flash::Error;
use crate::pac; use crate::pac;
pub const fn set_default_layout() {} pub const fn is_default_layout() -> bool {
true
}
pub const fn get_flash_regions() -> &'static [&'static FlashRegion] { pub const fn get_flash_regions() -> &'static [&'static FlashRegion] {
&FLASH_REGIONS &FLASH_REGIONS

View File

@ -69,7 +69,7 @@ mod alt_regions {
impl<'d> Flash<'d> { impl<'d> Flash<'d> {
pub fn into_alt_regions(self) -> AltFlashLayout<'d, Async> { pub fn into_alt_regions(self) -> AltFlashLayout<'d, Async> {
super::set_alt_layout(); assert!(!super::is_default_layout());
// SAFETY: We never expose the cloned peripheral references, and their instance is not public. // SAFETY: We never expose the cloned peripheral references, and their instance is not public.
// Also, all async flash region operations are protected with a mutex. // Also, all async flash region operations are protected with a mutex.
@ -86,7 +86,7 @@ mod alt_regions {
} }
pub fn into_alt_blocking_regions(self) -> AltFlashLayout<'d, Blocking> { pub fn into_alt_blocking_regions(self) -> AltFlashLayout<'d, Blocking> {
super::set_alt_layout(); assert!(!super::is_default_layout());
// SAFETY: We never expose the cloned peripheral references, and their instance is not public. // SAFETY: We never expose the cloned peripheral references, and their instance is not public.
// Also, all blocking flash region operations are protected with a cs. // Also, all blocking flash region operations are protected with a cs.
@ -191,38 +191,21 @@ impl FlashSector {
} }
#[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f469, stm32f479))] #[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f469, stm32f479))]
pub fn set_default_layout() { pub(crate) fn is_default_layout() -> bool {
unsafe { unsafe { !pac::FLASH.optcr().read().db1m() }
pac::FLASH.optkeyr().write(|w| w.set_optkey(0x08192A3B));
pac::FLASH.optkeyr().write(|w| w.set_optkey(0x4C5D6E7F));
pac::FLASH.optcr().modify(|r| {
r.set_db1m(false);
r.set_optlock(true)
});
};
} }
#[cfg(not(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f469, stm32f479)))] #[cfg(not(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f469, stm32f479)))]
pub const fn set_default_layout() {} pub(crate) const fn is_default_layout() -> bool {
true
#[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f469, stm32f479))]
fn set_alt_layout() {
unsafe {
pac::FLASH.optkeyr().write(|w| w.set_optkey(0x08192A3B));
pac::FLASH.optkeyr().write(|w| w.set_optkey(0x4C5D6E7F));
pac::FLASH.optcr().modify(|r| {
r.set_db1m(true);
r.set_optlock(true)
});
};
} }
#[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f469, stm32f479))] #[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f469, stm32f479))]
pub fn get_flash_regions() -> &'static [&'static FlashRegion] { pub fn get_flash_regions() -> &'static [&'static FlashRegion] {
if unsafe { pac::FLASH.optcr().read().db1m() } { if is_default_layout() {
&ALT_FLASH_REGIONS
} else {
&FLASH_REGIONS &FLASH_REGIONS
} else {
&ALT_FLASH_REGIONS
} }
} }

View File

@ -6,7 +6,9 @@ use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE};
use crate::flash::Error; use crate::flash::Error;
use crate::pac; use crate::pac;
pub const fn set_default_layout() {} pub const fn is_default_layout() -> bool {
true
}
pub const fn get_flash_regions() -> &'static [&'static FlashRegion] { pub const fn get_flash_regions() -> &'static [&'static FlashRegion] {
&FLASH_REGIONS &FLASH_REGIONS

View File

@ -7,7 +7,9 @@ use super::{FlashRegion, FlashSector, BANK1_REGION, FLASH_REGIONS, WRITE_SIZE};
use crate::flash::Error; use crate::flash::Error;
use crate::pac; use crate::pac;
pub const fn set_default_layout() {} pub const fn is_default_layout() -> bool {
true
}
const fn is_dual_bank() -> bool { const fn is_dual_bank() -> bool {
FLASH_REGIONS.len() == 2 FLASH_REGIONS.len() == 2

View File

@ -6,7 +6,9 @@ use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE};
use crate::flash::Error; use crate::flash::Error;
use crate::pac; use crate::pac;
pub const fn set_default_layout() {} pub const fn is_default_layout() -> bool {
true
}
pub const fn get_flash_regions() -> &'static [&'static FlashRegion] { pub const fn get_flash_regions() -> &'static [&'static FlashRegion] {
&FLASH_REGIONS &FLASH_REGIONS

View File

@ -2,7 +2,9 @@
use super::{Error, FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; use super::{Error, FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE};
pub const fn set_default_layout() {} pub const fn is_default_layout() -> bool {
true
}
pub const fn get_flash_regions() -> &'static [&'static FlashRegion] { pub const fn get_flash_regions() -> &'static [&'static FlashRegion] {
&FLASH_REGIONS &FLASH_REGIONS