embassy-stm32

Crates

git

Versions

stm32wba50ke

Flavors

LinearItem

Struct LinearItem 

Source
#[repr(C)]
pub struct LinearItem { pub tr1: ChTr1, pub tr2: ChTr2, pub br1: ChBr1, pub sar: u32, pub dar: u32, pub llr: ChLlr, }
Expand description

A linked-list item for linear GPDMA transfers.

Also works for 2D-capable GPDMA channels, but does not use 2D capabilities.

Fields§

§tr1: ChTr1

Transfer register 1.

§tr2: ChTr2

Transfer register 2.

§br1: ChBr1

Block register 2.

§sar: u32

Source address register.

§dar: u32

Destination address register.

§llr: ChLlr

Linked-list address register.

Implementations§

Source§

impl LinearItem

Source

pub unsafe fn new_read<'d, MW: Word, PW: Word>( request: Request, peri_addr: *mut PW, buf: &'d mut [MW], ) -> Self

Create a new read DMA transfer (peripheral to memory).

Source

pub unsafe fn new_write<'d, MW: Word, PW: Word>( request: Request, buf: &'d [MW], peri_addr: *mut PW, ) -> Self

Create a new write DMA transfer (memory to peripheral).

Link to the next linear item at the given address.

Enables channel update bits.

Unlink the next linear item.

Disables channel update bits.

Source

pub fn set_transfer_complete_mode(&mut self, mode: TransferCompleteMode)

Set the transfer complete event mode (TR2.TCEM) for this item.

In linked-list mode, the channel’s TR2 register is overwritten by each LLI when UT2 is set, so TCEM must be configured per-item.

See TransferCompleteMode for details.

Source

pub fn transfer_count(&self) -> usize

The item’s transfer count in number of words.

Trait Implementations§

Source§

impl Clone for LinearItem

Source§

fn clone(&self) -> LinearItem

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LinearItem

Source§

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

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

impl Default for LinearItem

Source§

fn default() -> LinearItem

Returns the “default value” for a type. Read more
Source§

impl Copy for LinearItem

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.