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§
source§impl Drop for UnlockedFlash<'_>
impl Drop for UnlockedFlash<'_>
Automatically lock flash erase/program when leaving scope
source§impl<'a> NorFlash for UnlockedFlash<'a>
impl<'a> NorFlash for UnlockedFlash<'a>
source§const WRITE_SIZE: usize = 1usize
const WRITE_SIZE: usize = 1usize
The minumum number of bytes the storage peripheral can write
source§const ERASE_SIZE: usize = 131_072usize
const ERASE_SIZE: usize = 131_072usize
The minumum number of bytes the storage peripheral can erase
source§impl<'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§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more