When doing development on UrJTAG, I found sometimes dumping tap state was useful for debugging. I attached a log below. What do you think? Is it OK?

Regards,
Jie



$ ./jtag -q
jtag> debug debug
Return in urj_parse_line r=0
jtag> cable gnice+
Connected to libftdi driver.
tap_state: UNKNOWN_STATE
tap_state: TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:0)=> RUN_TEST_IDLE
Return in urj_parse_line r=0
jtag> detect
tap_state: TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:0)=> RUN_TEST_IDLE
tap_state:    RUN_TEST_IDLE =(tms:1)=> SELECT_DR_SCAN
tap_state:   SELECT_DR_SCAN =(tms:1)=> SELECT_IR_SCAN
tap_state:   SELECT_IR_SCAN =(tms:0)=> CAPTURE_IR
tap_state:       CAPTURE_IR =(tms:0)=> SHIFT_IR
IR length: 5
tap_state:         SHIFT_IR =(tms:1)=> EXIT1_IR
tap_state:         EXIT1_IR =(tms:1)=> UPDATE_IR
tap_state:        UPDATE_IR =(tms:0)=> RUN_TEST_IDLE
tap_state:    RUN_TEST_IDLE =(tms:1)=> SELECT_DR_SCAN
tap_state:   SELECT_DR_SCAN =(tms:0)=> CAPTURE_DR
tap_state:       CAPTURE_DR =(tms:0)=> SHIFT_DR
Chain length: 1
tap_state: TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:1)=> TEST_LOGIC_RESET
tap_state: TEST_LOGIC_RESET =(tms:0)=> RUN_TEST_IDLE
tap_state:    RUN_TEST_IDLE =(tms:1)=> SELECT_DR_SCAN
tap_state:   SELECT_DR_SCAN =(tms:0)=> CAPTURE_DR
tap_state:       CAPTURE_DR =(tms:0)=> SHIFT_DR
Device Id: 00100010011111001000000011001011 (0x227C80CB)
  Manufacturer: Analog Devices
  Part(0):         BF537
  Stepping:     2
Filename: /home/jie/installs/urjtag-upstream/share/urjtag/analog/bf537/bf537
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
Return in urj_parse_line r=0
File Closed go=0
tap_state:         SHIFT_DR =(tms:1)=> EXIT1_DR
tap_state:         EXIT1_DR =(tms:1)=> UPDATE_DR
tap_state:        UPDATE_DR =(tms:0)=> RUN_TEST_IDLE
tap_state:    RUN_TEST_IDLE =(tms:1)=> SELECT_DR_SCAN
tap_state:   SELECT_DR_SCAN =(tms:1)=> SELECT_IR_SCAN
tap_state:   SELECT_IR_SCAN =(tms:0)=> CAPTURE_IR
tap_state:       CAPTURE_IR =(tms:0)=> SHIFT_IR
tap_state:         SHIFT_IR =(tms:1)=> EXIT1_IR
tap_state:         EXIT1_IR =(tms:1)=> UPDATE_IR
tap_state:        UPDATE_IR =(tms:0)=> RUN_TEST_IDLE
tap_state:    RUN_TEST_IDLE =(tms:1)=> SELECT_DR_SCAN
tap_state:   SELECT_DR_SCAN =(tms:0)=> CAPTURE_DR
tap_state:       CAPTURE_DR =(tms:0)=> SHIFT_DR
tap_state:         SHIFT_DR =(tms:1)=> EXIT1_DR
tap_state:         EXIT1_DR =(tms:1)=> UPDATE_DR
tap_state:        UPDATE_DR =(tms:0)=> RUN_TEST_IDLE
tap_state:    RUN_TEST_IDLE =(tms:1)=> SELECT_DR_SCAN
tap_state:   SELECT_DR_SCAN =(tms:1)=> SELECT_IR_SCAN
tap_state:   SELECT_IR_SCAN =(tms:0)=> CAPTURE_IR
tap_state:       CAPTURE_IR =(tms:0)=> SHIFT_IR
tap_state:         SHIFT_IR =(tms:1)=> EXIT1_IR
tap_state:         EXIT1_IR =(tms:1)=> UPDATE_IR
tap_state:        UPDATE_IR =(tms:0)=> RUN_TEST_IDLE
Return in urj_parse_line r=0
jtag>
2010-02-01  Jie Zhang  <jie.zh...@analog.com>

  * src/tap/state.c (urj_tap_state_name): New.
    (urj_tap_state_dump): New.
    (urj_tap_state_dump_2): New.
    (urj_tap_state_init): Call urj_tap_state_dump.
    (urj_tap_state_done): Likewise.
    (urj_tap_state_reset): Likewise.
    (urj_tap_state_set_trst): Likewise.
    (urj_tap_state_clock): Call urj_tap_state_dump_2.


Index: src/tap/state.c
===================================================================
--- src/tap/state.c	(revision 1748)
+++ src/tap/state.c	(working copy)
@@ -26,6 +26,46 @@
 #include <urjtag/tap_state.h>
 #include <urjtag/chain.h>
 
+static const char *
+urj_tap_state_name (int state)
+{
+    switch (state)
+    {
+    case URJ_TAP_STATE_UNKNOWN_STATE:		return "UNKNOWN_STATE";
+    case URJ_TAP_STATE_TEST_LOGIC_RESET:	return "TEST_LOGIC_RESET";
+    case URJ_TAP_STATE_RUN_TEST_IDLE:		return "RUN_TEST_IDLE";
+    case URJ_TAP_STATE_SELECT_DR_SCAN:		return "SELECT_DR_SCAN";
+    case URJ_TAP_STATE_CAPTURE_DR:		return "CAPTURE_DR";
+    case URJ_TAP_STATE_SHIFT_DR:		return "SHIFT_DR";
+    case URJ_TAP_STATE_EXIT1_DR:		return "EXIT1_DR";
+    case URJ_TAP_STATE_PAUSE_DR:		return "PAUSE_DR";
+    case URJ_TAP_STATE_EXIT2_DR:		return "EXIT2_DR";
+    case URJ_TAP_STATE_UPDATE_DR:		return "UPDATE_DR";
+    case URJ_TAP_STATE_SELECT_IR_SCAN:		return "SELECT_IR_SCAN";
+    case URJ_TAP_STATE_CAPTURE_IR:		return "CAPTURE_IR";
+    case URJ_TAP_STATE_SHIFT_IR:		return "SHIFT_IR";
+    case URJ_TAP_STATE_EXIT1_IR:		return "EXIT1_IR";
+    case URJ_TAP_STATE_PAUSE_IR:		return "PAUSE_IR";
+    case URJ_TAP_STATE_EXIT2_IR:		return "EXIT2_IR";
+    case URJ_TAP_STATE_UPDATE_IR:		return "UPDATE_IR";
+    default:					return "??????";
+    }
+}
+
+static void
+urj_tap_state_dump (int state)
+{
+    urj_log (URJ_LOG_LEVEL_DEBUG, "tap_state: %s\n",
+             urj_tap_state_name (state));
+}
+
+static void
+urj_tap_state_dump_2 (int state0, int state1, int tms)
+{
+    urj_log (URJ_LOG_LEVEL_DEBUG, "tap_state: %16s =(tms:%d)=> %s\n",
+             urj_tap_state_name (state0), tms, urj_tap_state_name (state1));
+}
+
 int
 urj_tap_state (urj_chain_t *chain)
 {
@@ -35,18 +75,21 @@ urj_tap_state (urj_chain_t *chain)
 int
 urj_tap_state_init (urj_chain_t *chain)
 {
+    urj_tap_state_dump (URJ_TAP_STATE_UNKNOWN_STATE);
     return chain->state = URJ_TAP_STATE_UNKNOWN_STATE;
 }
 
 int
 urj_tap_state_done (urj_chain_t *chain)
 {
+    urj_tap_state_dump (URJ_TAP_STATE_UNKNOWN_STATE);
     return chain->state = URJ_TAP_STATE_UNKNOWN_STATE;
 }
 
 int
 urj_tap_state_reset (urj_chain_t *chain)
 {
+    urj_tap_state_dump (URJ_TAP_STATE_TEST_LOGIC_RESET);
     return chain->state = URJ_TAP_STATE_TEST_LOGIC_RESET;
 }
 
@@ -64,12 +107,15 @@ urj_tap_state_set_trst (urj_chain_t *cha
             chain->state = URJ_TAP_STATE_UNKNOWN_STATE;
     }
 
+    urj_tap_state_dump (chain->state);
     return chain->state;
 }
 
 int
 urj_tap_state_clock (urj_chain_t *chain, int tms)
 {
+    int oldstate = chain->state;
+
     if (tms)
     {
         switch (chain->state)
@@ -154,5 +200,6 @@ urj_tap_state_clock (urj_chain_t *chain,
         }
     }
 
+    urj_tap_state_dump_2 (oldstate, chain->state, tms);
     return chain->state;
 }
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
UrJTAG-development mailing list
UrJTAG-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/urjtag-development

Reply via email to