embassy-nrf

Crates

git

Versions

nrf5340-app-ns

Flavors

๐Ÿ“ฃ We want to hear from you! Fill the Rust Embedded 2024 micro-survey.

Struct embassy_nrf::qspi::Qspi

source ยท
pub struct Qspi<'d, T: Instance> { /* private fields */ }
Expand description

QSPI flash driver.

Implementationsยง

sourceยง

impl<'d, T: Instance> Qspi<'d, T>

source

pub fn new( qspi: impl Peripheral<P = T> + 'd, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, sck: impl Peripheral<P = impl GpioPin> + 'd, csn: impl Peripheral<P = impl GpioPin> + 'd, io0: impl Peripheral<P = impl GpioPin> + 'd, io1: impl Peripheral<P = impl GpioPin> + 'd, io2: impl Peripheral<P = impl GpioPin> + 'd, io3: impl Peripheral<P = impl GpioPin> + 'd, config: Config, ) -> Self

Create a new QSPI driver.

source

pub async fn custom_instruction( &mut self, opcode: u8, req: &[u8], resp: &mut [u8], ) -> Result<(), Error>

Do a custom QSPI instruction.

source

pub fn blocking_custom_instruction( &mut self, opcode: u8, req: &[u8], resp: &mut [u8], ) -> Result<(), Error>

Do a custom QSPI instruction, blocking version.

source

pub async fn read_raw( &mut self, address: u32, data: &mut [u8], ) -> Result<(), Error>

Raw QSPI read.

The difference with read is that this does not do bounds checks against the flash capacity. It is intended for use when QSPI is used as a raw bus, not with flash memory.

source

pub async fn write_raw( &mut self, address: u32, data: &[u8], ) -> Result<(), Error>

Raw QSPI write.

The difference with write is that this does not do bounds checks against the flash capacity. It is intended for use when QSPI is used as a raw bus, not with flash memory.

source

pub fn blocking_read_raw( &mut self, address: u32, data: &mut [u8], ) -> Result<(), Error>

Raw QSPI read, blocking version.

The difference with blocking_read is that this does not do bounds checks against the flash capacity. It is intended for use when QSPI is used as a raw bus, not with flash memory.

source

pub fn blocking_write_raw( &mut self, address: u32, data: &[u8], ) -> Result<(), Error>

Raw QSPI write, blocking version.

The difference with blocking_write is that this does not do bounds checks against the flash capacity. It is intended for use when QSPI is used as a raw bus, not with flash memory.

source

pub async fn read(&mut self, address: u32, data: &mut [u8]) -> Result<(), Error>

Read data from the flash memory.

source

pub async fn write(&mut self, address: u32, data: &[u8]) -> Result<(), Error>

Write data to the flash memory.

source

pub async fn erase(&mut self, address: u32) -> Result<(), Error>

Erase a sector on the flash memory.

source

pub fn blocking_read( &mut self, address: u32, data: &mut [u8], ) -> Result<(), Error>

Read data from the flash memory, blocking version.

source

pub fn blocking_write(&mut self, address: u32, data: &[u8]) -> Result<(), Error>

Write data to the flash memory, blocking version.

source

pub fn blocking_erase(&mut self, address: u32) -> Result<(), Error>

Erase a sector on the flash memory, blocking version.

Trait Implementationsยง

sourceยง

impl<'d, T: Instance> Drop for Qspi<'d, T>

sourceยง

fn drop(&mut self)

Executes the destructor for this type. Read more
sourceยง

impl<'d, T: Instance> ErrorType for Qspi<'d, T>

sourceยง

type Error = Error

Errors returned by this NOR flash.
sourceยง

impl<'d, T: Instance> NorFlash for Qspi<'d, T>

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 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<'d, T: Instance> NorFlash for Qspi<'d, T>

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ยง

async fn write(&mut self, offset: u32, data: &[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ยง

async 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<'d, T: Instance> ReadNorFlash for Qspi<'d, T>

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<'d, T: Instance> ReadNorFlash for Qspi<'d, T>

sourceยง

const READ_SIZE: usize = 4usize

The minumum number of bytes the storage peripheral can read
sourceยง

async fn read( &mut self, address: u32, data: &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<'d, T> Freeze for Qspi<'d, T>
where T: Freeze,

ยง

impl<'d, T> RefUnwindSafe for Qspi<'d, T>
where T: RefUnwindSafe,

ยง

impl<'d, T> Send for Qspi<'d, T>

ยง

impl<'d, T> Sync for Qspi<'d, T>
where T: Sync,

ยง

impl<'d, T> Unpin for Qspi<'d, T>
where T: Unpin,

ยง

impl<'d, T> !UnwindSafe for Qspi<'d, T>

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

sourceยง

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

sourceยง

fn cast_from(src: Src) -> Dst

Casts the value.
sourceยง

impl<T> CheckedAs for T

sourceยง

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
sourceยง

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

sourceยง

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
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<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

sourceยง

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
sourceยง

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

sourceยง

fn lossy_into(self) -> Dst

Performs the conversion.
sourceยง

impl<T> OverflowingAs for T

sourceยง

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
sourceยง

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

sourceยง

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
sourceยง

impl<T> Same for T

sourceยง

type Output = T

Should always be Self
sourceยง

impl<T> SaturatingAs for T

sourceยง

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
sourceยง

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

sourceยง

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
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.
sourceยง

impl<T> UnwrappedAs for T

sourceยง

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
sourceยง

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

sourceยง

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
sourceยง

impl<T> WrappingAs for T

sourceยง

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
sourceยง

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

sourceยง

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.