embassy-boot

Crates

0.1.1

Versions

default

Flavors

Struct BootFlash

Source
pub struct BootFlash<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8 = u8::MAX>{ /* private fields */ }
Expand description

A flash wrapper implementing the Flash and embedded_storage traits.

Implementations§

Source§

impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> BootFlash<F, BLOCK_SIZE, ERASE_VALUE>

Source

pub fn new(flash: F) -> Self

Create a new instance of a bootable flash

Trait Implementations§

Source§

impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> ErrorType for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>

Source§

type Error = <F as ErrorType>::Error

Errors returned by this NOR flash.
Source§

impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> Flash for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>

Source§

const BLOCK_SIZE: usize = BLOCK_SIZE

The block size that should be used when writing to flash. For most builtin flashes, this is the same as the erase size of the flash, but for external QSPI flash modules, this can be lower.
Source§

const ERASE_VALUE: u8 = ERASE_VALUE

The erase value of the flash. Typically the default of 0xFF is used, but some flashes use a different value.
Source§

impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> NorFlash for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>

Source§

const WRITE_SIZE: usize = F::WRITE_SIZE

The minumum number of bytes the storage peripheral can write
Source§

const ERASE_SIZE: usize = F::ERASE_SIZE

The minumum number of bytes the storage peripheral can erase
Source§

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
Source§

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. Read more
Source§

impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> ReadNorFlash for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>

Source§

const READ_SIZE: usize = F::READ_SIZE

The minumum number of bytes the storage peripheral can read
Source§

fn read(&mut self, offset: u32, bytes: &mut [u8]) -> Result<(), Self::Error>

Read a slice of data from the storage peripheral, starting the read operation at the given address offset, and reading bytes.len() bytes. Read more
Source§

fn capacity(&self) -> usize

The capacity of the peripheral in bytes.

Auto Trait Implementations§

§

impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> Freeze for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>
where F: Freeze,

§

impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> RefUnwindSafe for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>
where F: RefUnwindSafe,

§

impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> Send for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>
where F: Send,

§

impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> Sync for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>
where F: Sync,

§

impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> Unpin for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>
where F: Unpin,

§

impl<F, const BLOCK_SIZE: usize, const ERASE_VALUE: u8> UnwindSafe for BootFlash<F, BLOCK_SIZE, ERASE_VALUE>
where F: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.