pub struct ArmDebugInterface<T> { /* private fields */ }Implementations§
Source§impl<T, U> ArmDebugInterface<T>
impl<T, U> ArmDebugInterface<T>
pub fn new(taps: Taps<T>) -> Self
pub fn queue_read_adi_nobank(&mut self, port: Port, reg: u8) -> bool
pub fn finish_read(&mut self) -> Result<u32, u8>
Sourcepub fn read_adi_nobank(&mut self, port: Port, reg: u8) -> Result<u32, u8>
pub fn read_adi_nobank(&mut self, port: Port, reg: u8) -> Result<u32, u8>
Read register reg from port. This function assumes that the correct bank is already
selected. You probably want read_adi unless you know what you’re doing.
Sourcepub fn write_adi_nobank(
&mut self,
port: Port,
reg: u8,
val: u32,
check: bool,
) -> Result<(), u8>
pub fn write_adi_nobank( &mut self, port: Port, reg: u8, val: u32, check: bool, ) -> Result<(), u8>
Write val to register reg on port. This function assumes that the correct bank is already
selected. If check is true then the return code of the write will be verified, however
this comes at a performance penalty. You probably want write_adi unless you know what
you’re doing.
Sourcepub fn bank_select(&mut self, apsel: u32, apbank: u32, dpbank: u32)
pub fn bank_select(&mut self, apsel: u32, apbank: u32, dpbank: u32)
Select the given access port and banks on the access port and debug port.
Sourcepub fn read_adi(&mut self, apsel: u32, port: Port, reg: u8) -> Result<u32, u8>
pub fn read_adi(&mut self, apsel: u32, port: Port, reg: u8) -> Result<u32, u8>
Read register reg from AP apsel and port.
Sourcepub fn queue_read_adi(&mut self, apsel: u32, port: Port, reg: u8) -> bool
pub fn queue_read_adi(&mut self, apsel: u32, port: Port, reg: u8) -> bool
Read register reg from AP apsel and port.
Sourcepub fn write_adi(
&mut self,
apsel: u32,
port: Port,
reg: u8,
val: u32,
) -> Result<(), u8>
pub fn write_adi( &mut self, apsel: u32, port: Port, reg: u8, val: u32, ) -> Result<(), u8>
Write val to register reg of AP apsel and port.
Sourcepub fn write_adi_nocheck(
&mut self,
apsel: u32,
port: Port,
reg: u8,
val: u32,
) -> Result<(), u8>
pub fn write_adi_nocheck( &mut self, apsel: u32, port: Port, reg: u8, val: u32, ) -> Result<(), u8>
Write val to register reg of AP apsel and port without checking for success. This
is slightly faster than write_adi, especially when doing a sequence of writes.
Sourcepub fn read_adi_pipelined(
&mut self,
apsel: u32,
port: Port,
reg: &[u8],
) -> Vec<Result<u32, u8>>
pub fn read_adi_pipelined( &mut self, apsel: u32, port: Port, reg: &[u8], ) -> Vec<Result<u32, u8>>
Read multiple registers. reg is an array of register values to access. The result is
returned in the corresponding index of the returned Vec. This function makes more
efficient use of the JTAG bus when there are multiple reads to perform.
Sourcepub fn write_adi_pipelined(
&mut self,
apsel: u32,
port: Port,
reg: &[(u8, u32)],
) -> Result<(), u8>
pub fn write_adi_pipelined( &mut self, apsel: u32, port: Port, reg: &[(u8, u32)], ) -> Result<(), u8>
Write multiple registers. Each item of reg is a tuple consisting of the register address
and the value to write. This function makes more efficient use of the JTAG bus when there
are multiple reads to perform.