Struct stm32f4xx_hal::flash::UnlockedFlash
source · [−]pub struct UnlockedFlash<'a> { /* private fields */ }
Expand description
Result of FlashExt::unlocked()
Examples
use stm32f4xx_hal::pac::Peripherals;
use stm32f4xx_hal::flash::{FlashExt, LockedFlash, UnlockedFlash};
use embedded_storage::nor_flash::NorFlash;
let dp = Peripherals::take().unwrap();
let mut flash = LockedFlash::new(dp.FLASH);
// Unlock flash for writing
let mut unlocked_flash = flash.unlocked();
// Erase the second 128 KB sector.
NorFlash::erase(&mut unlocked_flash, 128 * 1024, 256 * 1024).unwrap();
// Write some data at the start of the second 128 KB sector.
let buf = [0u8; 64];
NorFlash::write(&mut unlocked_flash, 128 * 1024, &buf).unwrap();
// Lock flash by dropping
drop(unlocked_flash);
Implementations
Trait Implementations
sourceimpl Drop for UnlockedFlash<'_>
impl Drop for UnlockedFlash<'_>
Automatically lock flash erase/program when leaving scope
sourceimpl<'a> NorFlash for UnlockedFlash<'a>
impl<'a> NorFlash for UnlockedFlash<'a>
sourceconst WRITE_SIZE: usize = 1usize
const WRITE_SIZE: usize = 1usize
The minumum number of bytes the storage peripheral can write
sourceconst ERASE_SIZE: usize = 131_072usize
const ERASE_SIZE: usize = 131_072usize
The minumum number of bytes the storage peripheral can erase
sourcefn erase(&mut self, from: u32, to: u32) -> Result<(), Self::Error>
fn erase(&mut self, from: u32, to: u32) -> Result<(), Self::Error>
Erase the given storage range, clearing all data within [from..to]
.
The given range will contain all 1s afterwards. Read more
sourcefn write(&mut self, offset: u32, bytes: &[u8]) -> Result<(), Self::Error>
fn write(&mut self, offset: u32, bytes: &[u8]) -> Result<(), Self::Error>
If power is lost during write, the contents of the written words are undefined,
but the rest of the page is guaranteed to be unchanged.
It is not allowed to write to the same word twice.
offset
and bytes.len()
must both be multiples of WRITE_SIZE
. Read more
sourceimpl<'a> ReadNorFlash for UnlockedFlash<'a>
impl<'a> ReadNorFlash for UnlockedFlash<'a>
impl<'a> MultiwriteNorFlash for UnlockedFlash<'a>
Auto Trait Implementations
impl<'a> RefUnwindSafe for UnlockedFlash<'a>
impl<'a> Send for UnlockedFlash<'a>
impl<'a> !Sync for UnlockedFlash<'a>
impl<'a> Unpin for UnlockedFlash<'a>
impl<'a> !UnwindSafe for UnlockedFlash<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more