Merge UPDATE_DR and UPDATE_IR handling in JTAG state machines
This commit is contained in:
parent
6a0de15bff
commit
6c16417ee9
10
src/jtag.cpp
10
src/jtag.cpp
|
|
@ -555,6 +555,7 @@ void Jtag::set_state(tapState_t newState)
|
|||
}
|
||||
break;
|
||||
case UPDATE_DR:
|
||||
case UPDATE_IR:
|
||||
if (newState == RUN_TEST_IDLE) {
|
||||
tms = 0;
|
||||
_state = RUN_TEST_IDLE;
|
||||
|
|
@ -616,15 +617,6 @@ void Jtag::set_state(tapState_t newState)
|
|||
_state = UPDATE_IR;
|
||||
}
|
||||
break;
|
||||
case UPDATE_IR:
|
||||
if (newState == RUN_TEST_IDLE) {
|
||||
tms = 0;
|
||||
_state = RUN_TEST_IDLE;
|
||||
} else {
|
||||
tms = 1;
|
||||
_state = SELECT_DR_SCAN;
|
||||
}
|
||||
break;
|
||||
case UNKNOWN:;
|
||||
// UNKNOWN should not be valid...
|
||||
throw std::exception();
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ class Jtag {
|
|||
PAUSE_IR = 13,
|
||||
EXIT2_IR = 14,
|
||||
UPDATE_IR = 15,
|
||||
UNKNOWN = 999
|
||||
UNKNOWN = 16,
|
||||
};
|
||||
|
||||
int shiftIR(unsigned char *tdi, unsigned char *tdo, int irlen,
|
||||
|
|
|
|||
|
|
@ -403,6 +403,7 @@ Jtag::tapState_t XVC_server::set_state(const uint8_t *tms_seq, uint32_t len)
|
|||
_state = (tms) ? Jtag::UPDATE_DR : Jtag::SHIFT_DR;
|
||||
break;
|
||||
case Jtag::UPDATE_DR:
|
||||
case Jtag::UPDATE_IR:
|
||||
_state = (tms) ? Jtag::SELECT_DR_SCAN : Jtag::RUN_TEST_IDLE;
|
||||
break;
|
||||
|
||||
|
|
@ -424,9 +425,6 @@ Jtag::tapState_t XVC_server::set_state(const uint8_t *tms_seq, uint32_t len)
|
|||
case Jtag::EXIT2_IR:
|
||||
_state = (tms) ? Jtag::UPDATE_IR : Jtag::SHIFT_IR;
|
||||
break;
|
||||
case Jtag::UPDATE_IR:
|
||||
_state = (tms) ? Jtag::SELECT_DR_SCAN : Jtag::RUN_TEST_IDLE;
|
||||
break;
|
||||
default:
|
||||
/* pass */
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in New Issue