Trait Swd

Source
pub trait Swd<DEPS>: From<DEPS> {
    const AVAILABLE: bool;

    // Required methods
    fn read_inner(&mut self, apndp: APnDP, a: DPRegister) -> Result<u32>;
    fn write_inner(
        &mut self,
        apndp: APnDP,
        a: DPRegister,
        data: u32,
    ) -> Result<()>;
    fn set_clock(&mut self, max_frequency: u32) -> bool;
    fn write_sequence(&mut self, num_bits: usize, data: &[u8]) -> Result<()>;
    fn read_sequence(&mut self, num_bits: usize, data: &mut [u8]) -> Result<()>;

    // Provided methods
    fn read(
        &mut self,
        wait_retries: usize,
        apndp: APnDP,
        a: DPRegister,
    ) -> Result<u32> { ... }
    fn write(
        &mut self,
        wait_retries: usize,
        apndp: APnDP,
        a: DPRegister,
        data: u32,
    ) -> Result<()> { ... }
    fn read_dp(&mut self, wait_retries: usize, a: DPRegister) -> Result<u32> { ... }
    fn write_dp(
        &mut self,
        wait_retries: usize,
        a: DPRegister,
        data: u32,
    ) -> Result<()> { ... }
    fn read_ap(&mut self, wait_retries: usize, a: DPRegister) -> Result<u32> { ... }
}
Expand description

Definition of SWD communication.

Required Associated Constants§

Source

const AVAILABLE: bool

If SWD is available or not.

Required Methods§

Source

fn read_inner(&mut self, apndp: APnDP, a: DPRegister) -> Result<u32>

Here the actual hardware implementation for an SWD read is made.

Source

fn write_inner(&mut self, apndp: APnDP, a: DPRegister, data: u32) -> Result<()>

Here the actual hardware implementation for an SWD write is made.

Source

fn set_clock(&mut self, max_frequency: u32) -> bool

Set the maximum clock frequency, return true if it is valid.

Source

fn write_sequence(&mut self, num_bits: usize, data: &[u8]) -> Result<()>

Write a sequence of bits using SWDIO and the clock line running at the configured freq.

Source

fn read_sequence(&mut self, num_bits: usize, data: &mut [u8]) -> Result<()>

Read a sequence of bits using SWDIO and the clock line running at the configured freq.

Provided Methods§

Source

fn read( &mut self, wait_retries: usize, apndp: APnDP, a: DPRegister, ) -> Result<u32>

Helper method over read_inner to retry during AckWait.

Source

fn write( &mut self, wait_retries: usize, apndp: APnDP, a: DPRegister, data: u32, ) -> Result<()>

Helper method over write_inner to retry during AckWait.

Source

fn read_dp(&mut self, wait_retries: usize, a: DPRegister) -> Result<u32>

Shorthand helper to read DP registers

Source

fn write_dp( &mut self, wait_retries: usize, a: DPRegister, data: u32, ) -> Result<()>

Shorthand helper to write DP registers

Source

fn read_ap(&mut self, wait_retries: usize, a: DPRegister) -> Result<u32>

Shorthand helper to read AP registers

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§