DmaChannel

Trait DmaChannel 

Source
pub trait DmaChannel {
    // Required methods
    fn start(&mut self);
    fn stop(&mut self);
    fn set_peripheral_address<T: Sized + Copy>(
        &mut self,
        address: usize,
        mem_to_periph: bool,
        increase: bool,
        circular: bool,
    );
    fn set_memory_address(&mut self, address: usize, increase: bool);
    fn set_transfer_length(&mut self, len: usize);
    fn set_memory_to_memory<T: Sized + Copy>(
        &mut self,
        src_addr: usize,
        dst_addr: usize,
        len: usize,
    );
    fn get_left_len(&self) -> usize;
    fn in_progress(&self) -> bool;
    fn set_interrupt(&mut self, event: DmaEvent, enable: bool);
    fn is_interrupted(&mut self, event: DmaEvent) -> bool;

    // Provided method
    fn set_memory_buf_for_peripheral<T: Sized + Copy>(&mut self, buf: &[T]) { ... }
}

Required Methods§

Source

fn start(&mut self)

Source

fn stop(&mut self)

Source

fn set_peripheral_address<T: Sized + Copy>( &mut self, address: usize, mem_to_periph: bool, increase: bool, circular: bool, )

Source

fn set_memory_address(&mut self, address: usize, increase: bool)

Source

fn set_transfer_length(&mut self, len: usize)

Source

fn set_memory_to_memory<T: Sized + Copy>( &mut self, src_addr: usize, dst_addr: usize, len: usize, )

Source

fn get_left_len(&self) -> usize

Source

fn in_progress(&self) -> bool

Source

fn set_interrupt(&mut self, event: DmaEvent, enable: bool)

Source

fn is_interrupted(&mut self, event: DmaEvent) -> bool

Provided Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<DMA, const C: u8> DmaChannel for Ch<DMA, C>
where DMA: RegisterBlock,