Struct stm32_fmc::Nand

source ·
pub struct Nand<FMC, IC> { /* private fields */ }
Expand description

FMC Peripheral specialized as a NAND Controller. Not yet initialized.

Implementations§

source§

impl<IC: NandChip, FMC: FmcPeripheral> Nand<FMC, IC>

source

pub fn new<PINS>(fmc: FMC, _pins: PINS, _chip: IC) -> Self
where PINS: PinsNand,

New NAND instance

_pins must be a set of pins connecting to an NAND on the FMC controller

§Panics
  • Panics if there is a mismatch between the data lines in PINS and the NAND device
source

pub unsafe fn new_unchecked(fmc: FMC, _chip: IC) -> Self

New NAND instance

§Safety

This method does not ensure that IO pins are configured correctly. Misconfiguration may result in a bus lockup or stall when attempting to initialise the NAND device.

The pins are not checked against the requirements for the NAND chip. Using this method it is possible to initialise a NAND device without sufficient pins to access the whole memory

source

pub fn init<D>(&mut self, delay: &mut D) -> NandDevice
where D: DelayUs<u8>,

Initialise NAND instance. delay is used to wait 1µs after enabling the memory controller.

Returns a NandDevice instance.

§Panics
  • Panics if any setting in IC::CONFIG cannot be achieved
  • Panics if the FMC Kernel Clock is too fast to achieve the timing required by the NAND device

Auto Trait Implementations§

§

impl<FMC, IC> Freeze for Nand<FMC, IC>
where FMC: Freeze,

§

impl<FMC, IC> RefUnwindSafe for Nand<FMC, IC>
where FMC: RefUnwindSafe, IC: RefUnwindSafe,

§

impl<FMC, IC> Send for Nand<FMC, IC>
where FMC: Send, IC: Send,

§

impl<FMC, IC> Sync for Nand<FMC, IC>
where FMC: Sync, IC: Sync,

§

impl<FMC, IC> Unpin for Nand<FMC, IC>
where FMC: Unpin, IC: Unpin,

§

impl<FMC, IC> UnwindSafe for Nand<FMC, IC>
where FMC: UnwindSafe, IC: 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>,

§

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>,

§

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.