FlashStorage

Struct FlashStorage 

Source
pub struct FlashStorage<'d> { /* private fields */ }
Expand description

Flash storage abstraction.

Implementations§

Source§

impl<'d> FlashStorage<'d>

Source

pub const WORD_SIZE: u32 = 4u32

Flash word size in bytes.

Source

pub const SECTOR_SIZE: u32 = 4_096u32

Flash sector size in bytes.

Source

pub fn new(flash: Flash<'d>) -> Self

Create a new flash storage instance.

§Panics

Panics if called more than once.

Trait Implementations§

Source§

impl<'d> Debug for FlashStorage<'d>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl ErrorType for FlashStorage<'_>

Source§

type Error = FlashStorageError

Errors returned by this NOR flash.
Source§

impl NorFlash for FlashStorage<'_>

Source§

const WRITE_SIZE: usize = 4usize

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

const ERASE_SIZE: usize = 4_096usize

The minumum number of bytes the storage peripheral can erase
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§

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§

impl ReadNorFlash for FlashStorage<'_>

Source§

const READ_SIZE: usize = 4usize

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

impl ReadStorage for FlashStorage<'_>

Source§

fn capacity(&self) -> usize

The SPI flash size is configured by writing a field in the software bootloader image header. This is done during flashing in espflash / esptool.

Source§

type Error = FlashStorageError

An enumeration of storage errors
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§

impl Storage for FlashStorage<'_>

Source§

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

Write a slice of data to the storage peripheral, starting the write operation at the given address offset (between 0 and self.capacity()). Read more
Source§

impl MultiwriteNorFlash for FlashStorage<'_>

Auto Trait Implementations§

§

impl<'d> Freeze for FlashStorage<'d>

§

impl<'d> RefUnwindSafe for FlashStorage<'d>

§

impl<'d> Send for FlashStorage<'d>

§

impl<'d> Sync for FlashStorage<'d>

§

impl<'d> Unpin for FlashStorage<'d>

§

impl<'d> !UnwindSafe for FlashStorage<'d>

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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> Same for T

Source§

type Output = T

Should always be Self
§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.