pub struct ScatterGatherBuilder<'a, W: Word> { /* private fields */ }Expand description
A builder for constructing scatter-gather DMA transfer chains.
This provides a type-safe way to build TCD chains for scatter-gather transfers without manual TCD manipulation.
§Example
use embassy_mcxa::dma::{DmaChannel, ScatterGatherBuilder};
let mut builder = ScatterGatherBuilder::<u32>::new();
// Add transfer segments
builder.add_transfer(&src1, &mut dst1);
builder.add_transfer(&src2, &mut dst2);
builder.add_transfer(&src3, &mut dst3);
// Build and execute
let transfer = unsafe { builder.build(&dma_ch).unwrap() };
transfer.await;Implementations§
Source§impl<'a, W: Word> ScatterGatherBuilder<'a, W>
impl<'a, W: Word> ScatterGatherBuilder<'a, W>
Sourcepub fn add_transfer<'b: 'a>(
&mut self,
src: &'b [W],
dst: &'b mut [W],
) -> &mut Self
pub fn add_transfer<'b: 'a>( &mut self, src: &'b [W], dst: &'b mut [W], ) -> &mut Self
Sourcepub fn segment_count(&self) -> usize
pub fn segment_count(&self) -> usize
Get the number of transfer segments added.
Trait Implementations§
Auto Trait Implementations§
impl<'a, W> Freeze for ScatterGatherBuilder<'a, W>
impl<'a, W> RefUnwindSafe for ScatterGatherBuilder<'a, W>where
W: RefUnwindSafe,
impl<'a, W> Send for ScatterGatherBuilder<'a, W>where
W: Send,
impl<'a, W> Sync for ScatterGatherBuilder<'a, W>where
W: Sync,
impl<'a, W> Unpin for ScatterGatherBuilder<'a, W>where
W: Unpin,
impl<'a, W> !UnwindSafe for ScatterGatherBuilder<'a, W>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more