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§
Required Methods§
Sourcefn read_inner(&mut self, apndp: APnDP, a: DPRegister) -> Result<u32>
fn read_inner(&mut self, apndp: APnDP, a: DPRegister) -> Result<u32>
Here the actual hardware implementation for an SWD read is made.
Sourcefn write_inner(&mut self, apndp: APnDP, a: DPRegister, data: u32) -> Result<()>
fn write_inner(&mut self, apndp: APnDP, a: DPRegister, data: u32) -> Result<()>
Here the actual hardware implementation for an SWD write is made.
Sourcefn set_clock(&mut self, max_frequency: u32) -> bool
fn set_clock(&mut self, max_frequency: u32) -> bool
Set the maximum clock frequency, return true if it is valid.
Provided Methods§
Sourcefn read(
&mut self,
wait_retries: usize,
apndp: APnDP,
a: DPRegister,
) -> Result<u32>
fn read( &mut self, wait_retries: usize, apndp: APnDP, a: DPRegister, ) -> Result<u32>
Helper method over read_inner to retry during AckWait.
Sourcefn write(
&mut self,
wait_retries: usize,
apndp: APnDP,
a: DPRegister,
data: u32,
) -> Result<()>
fn write( &mut self, wait_retries: usize, apndp: APnDP, a: DPRegister, data: u32, ) -> Result<()>
Helper method over write_inner to retry during AckWait.
Sourcefn read_dp(&mut self, wait_retries: usize, a: DPRegister) -> Result<u32>
fn read_dp(&mut self, wait_retries: usize, a: DPRegister) -> Result<u32>
Shorthand helper to read DP 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.