[][src]Struct ecpdap::jtag::JTAG

pub struct JTAG { /* fields omitted */ }

Implementations

impl JTAG[src]

pub fn new(dap: DAP) -> JTAG[src]

Create a new JTAG object which takes ownership of the provided DAP.

The initial state is TAPState::Unknown; the only way to enter a known state is by calling enter_test_logic_reset() to reset.

pub fn set_max_length(&mut self, max_length: usize)[src]

Set the maximum scan chain length to attempt to detect.

pub fn set_clock(&self, freq: u32) -> Result<()>[src]

Set JTAG bus clock speed.

pub fn pulse_nrst(&self, duration: Duration) -> Result<()>[src]

Pulse nRST low for duration.

pub fn scan(&mut self, ir_lengths: Option<&[usize]>) -> Result<JTAGChain>[src]

Scan JTAG chain, detecting TAPs and their IDCODEs and IR lengths.

If IR lengths for each TAP are known, provide them in ir_lengths.

Returns a new JTAGChain, which contains detected IDCODEs and can be used to create a JTAGTAP at a specific index.

pub fn into_tap(self, chain: JTAGChain, index: usize) -> Result<JTAGTAP>[src]

Create a new JTAG TAP, allowing read/write access to a single TAP on the chain.

pub fn enter_test_logic_reset(&mut self) -> Result<()>[src]

Force all TAPs into Test-Logic-Reset state from any current state.

pub fn enter_run_test_idle(&mut self) -> Result<()>[src]

Enter Run-Test/Idle state from TestLogicReset, Exit1*, Pause*, or Update*.

pub fn run_test_idle(&mut self, n: usize) -> Result<()>[src]

Enter Run-Test/Idle and remain there for n clock cycles.

pub fn enter_shift_dr(&mut self) -> Result<()>[src]

Enter Shift-DR state from Test-Logic-Reset, Run-Test/Idle, Update*, or Pause*.

pub fn enter_pause_dr(&mut self) -> Result<()>[src]

Enter Pause-DR from Exit1-DR.

pub fn enter_update_dr(&mut self) -> Result<()>[src]

Enter Update-DR from Shift-DR or Exit1-DR.

pub fn enter_shift_ir(&mut self) -> Result<()>[src]

Enter Shift-IR state from Test-Logic-Reset, Run-Test/Idle, Update*, or Pause*.

pub fn enter_pause_ir(&mut self) -> Result<()>[src]

Enter Pause-IR from Exit1-IR.

pub fn enter_update_ir(&mut self) -> Result<()>[src]

Enter Update-IR from Shift-IR or Exit1-IR.

pub fn write_ir(&mut self, tdi: &[bool]) -> Result<()>[src]

Move to Shift-IR, write tdi to IR, then enter Update-IR.

pub fn read_ir(&mut self, n: usize) -> Result<Vec<bool>>[src]

Move to Shift-IR, read n bits of IR while writing 0xFF, then enter Update-IR. Returns the captured bits from TDO.

pub fn exchange_ir(&mut self, tdi: &[bool]) -> Result<Vec<bool>>[src]

Move to Shift-IR, write tdi to IR while capturing TDO, then enter Update-IR. Returns the captured bits from TDO.

pub fn write_dr(&mut self, tdi: &[bool]) -> Result<()>[src]

Move to Shift-DR, write tdi to DR, enter Update-DR.

pub fn write_dr_and_stay(&mut self, tdi: &[bool]) -> Result<()>[src]

Move to Shift-DR, write tdi to DR, remain in Shift-DR.

pub fn read_dr(&mut self, n: usize) -> Result<Vec<bool>>[src]

Move to Shift-DR, read n bits of DR while writing 0xFF. Returns the captured bits from TDO.

pub fn exchange_dr(&mut self, tdi: &[bool]) -> Result<Vec<bool>>[src]

Move to Shift-DR, write tdi to DR while capturing TDO. Returns the captured bits from TDO.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.