OpenOCD
libjaylink/libjaylink/jtag.c File Reference

JTAG functions. More...

Include dependency graph for libjaylink/libjaylink/jtag.c:

Go to the source code of this file.

Functions

JAYLINK_API int jaylink_jtag_clear_trst (struct jaylink_device_handle *devh)
 Clear the JTAG test reset (TRST) signal. More...
 
JAYLINK_API int jaylink_jtag_io (struct jaylink_device_handle *devh, const uint8_t *tms, const uint8_t *tdi, uint8_t *tdo, uint16_t length, enum jaylink_jtag_version version)
 Perform a JTAG I/O operation. More...
 
JAYLINK_API int jaylink_jtag_set_trst (struct jaylink_device_handle *devh)
 Set the JTAG test reset (TRST) signal. More...
 

Detailed Description

JTAG functions.

Definition in file libjaylink/libjaylink/jtag.c.

Function Documentation

◆ jaylink_jtag_clear_trst()

JAYLINK_API int jaylink_jtag_clear_trst ( struct jaylink_device_handle devh)

Clear the JTAG test reset (TRST) signal.

Parameters
[in,out]devhDevice handle.
Return values
JAYLINK_OKSuccess.
JAYLINK_ERR_ARGInvalid arguments.
JAYLINK_ERR_TIMEOUTA timeout occurred.
JAYLINK_ERR_IOInput/output error.
JAYLINK_ERROther error conditions.
Since
0.1.0

Definition at line 186 of file libjaylink/libjaylink/jtag.c.

References jaylink_device::ctx, jaylink_device_handle::dev, JAYLINK_ERR_ARG, JAYLINK_OK, jaylink_strerror(), log_err(), transport_start_write(), and transport_write().

Referenced by jlink_reset().

◆ jaylink_jtag_io()

JAYLINK_API int jaylink_jtag_io ( struct jaylink_device_handle devh,
const uint8_t *  tms,
const uint8_t *  tdi,
uint8_t *  tdo,
uint16_t  length,
enum jaylink_jtag_version  version 
)

Perform a JTAG I/O operation.

Note
This function must only be used if the JAYLINK_TIF_JTAG interface is available and selected. Nevertheless, this function can be used if the device doesn't have the JAYLINK_DEV_CAP_SELECT_TIF capability.
Parameters
[in,out]devhDevice handle.
[in]tmsBuffer to read TMS data from.
[in]tdiBuffer to read TDI data from.
[out]tdoBuffer to store TDO data on success. Its content is undefined on failure. The buffer must be large enough to contain at least the specified number of bits to transfer.
[in]lengthNumber of bits to transfer.
[in]versionVersion of the JTAG command to use.
Return values
JAYLINK_OKSuccess.
JAYLINK_ERR_ARGInvalid arguments.
JAYLINK_ERR_TIMEOUTA timeout occurred.
JAYLINK_ERR_IOInput/output error.
JAYLINK_ERR_DEV_NO_MEMORYNot enough memory on the device to perform the operation.
JAYLINK_ERR_DEVUnspecified device error.
JAYLINK_ERROther error conditions.
See also
jaylink_select_interface()
jaylink_set_speed()
Since
0.1.0

Definition at line 75 of file libjaylink/libjaylink/jtag.c.

References buffer_set_u16(), jaylink_device::ctx, jaylink_device_handle::dev, JAYLINK_ERR_ARG, JAYLINK_ERR_DEV, JAYLINK_ERR_DEV_NO_MEMORY, JAYLINK_JTAG_VERSION_2, JAYLINK_JTAG_VERSION_3, JAYLINK_OK, jaylink_strerror(), log_err(), transport_read(), transport_start_write_read(), and transport_write().

Referenced by jlink_flush().

◆ jaylink_jtag_set_trst()

JAYLINK_API int jaylink_jtag_set_trst ( struct jaylink_device_handle devh)

Set the JTAG test reset (TRST) signal.

Parameters
[in,out]devhDevice handle.
Return values
JAYLINK_OKSuccess.
JAYLINK_ERR_ARGInvalid arguments.
JAYLINK_ERR_TIMEOUTA timeout occurred.
JAYLINK_ERR_IOInput/output error.
JAYLINK_ERROther error conditions.
Since
0.1.0

Definition at line 230 of file libjaylink/libjaylink/jtag.c.

References jaylink_device::ctx, jaylink_device_handle::dev, JAYLINK_ERR_ARG, JAYLINK_OK, jaylink_strerror(), log_err(), transport_start_write(), and transport_write().

Referenced by jlink_reset().