SourcePoint AMD Help

Table of Contents

msgdr

Add a DR scan into an existing JTAG message.

Syntax

[result =] msgdr(msg-handle, dr-length, readwrite[drscan-option])

Where drscan-option is one of the following:

[drscan-option] = [, write-array, [scan-chain, [0, [stop-state[, 0]]]]]

[drscan-option] = [, write-value, [scan-chain, [0, [stop-state[, 0]]]]]

Where:

result

is a boolean variable that contains the return value of this command. TRUE  indicates the DR scan was successfully added to the JTAG message. FALSE indicates an error occurred, such as the JTAG message was not found.

msg-handle

is the name of a previously defined debug variable of type handle. This is the variable that was passed in to msgopen when the JTAG message was created.

dr-length

is an ord4 that contains the number of bits to be scanned to a data register (DR).

readwrite

is an ord1 that specifies the type of DR scan. See valid readwrite values below.

write-array

is an array of type ord1, ord2, or ord4, of bits to scan to the data register. If no write-array is specified, then zeros are scanned.

write-value

is an ord1, ord2, or ord4 value to scan to the data register. If no write-value is specified, then zeros are scanned.

scan-chain

is an ord1 that specifies which scan chain to select on the debug port. This may only be either 0 or 1. If scan-chain is not specified, then scan chain 0 is used.

stop-state

is an ord1 that specifies the TAP state in which to stop at the end of the scan. If stop-state is not specified, then 0 (RTI) is used.

Discussion

Use the msgdr command to add a data register (DR) scan to the open JTAG message. The DR length must be specified. The additional section of parameters, drscan-option, is optional. This command returns an error if the JTAG message has been closed.

The legal readwrite values for DR scans are:

0

write-only

1

readwrite

2

read0 (read by writing 0s to DR)

3

read1 (by writing 1s to DR)

The legal stop-state values are:

0

RTI : default

1

CAPTURE-PAUSE: stop in the DR pause state, no data are shifted

2

PAUSE: stop in the DR pause state

3

CAPTURE-RTI: force through the DR capture state, no data are shifted and stop in RTI

4

RTI-DUAL: go to RTI from the DR PAUSE, clocks both time bases, no data are shifted

5

CAPTURE-PAUSE-DUAL: stop in the DR pause state, clocks both time bases, no data are shifted

Example

Command input:

// Read JTAG ID from processor
define handle h
define ord2 device = 0
msgopen(h)
msgir(h, 8, 2)     // 8=ir length, 2=idcode
msgdr(h, 0n32, 2)

msgclose(h)
msgscan(h, device)
define ord4 count = 0
msgreturndatasize(h, count, device)
define ord1 data[count]
msgdata(h, data)
data
msgdelete(h)

Related Topics: