jtaglib: fix register reading on MSP430G2452 and similar chips
This commit is contained in:
parent
30af3e9483
commit
a1a06e7e65
|
@ -1000,17 +1000,25 @@ address_t jtag_read_reg(struct jtdev *p, int reg)
|
||||||
jtag_tclk_set(p);
|
jtag_tclk_set(p);
|
||||||
jtag_tclk_clr(p);
|
jtag_tclk_clr(p);
|
||||||
jtag_tclk_set(p);
|
jtag_tclk_set(p);
|
||||||
jtag_tclk_clr(p);
|
/* older code did an extra clock cycle -- don't do this! will put the
|
||||||
jtag_tclk_set(p);
|
* current instruction word on the data bus instead of the register value
|
||||||
|
* on the G2452, making it useless. the clock cycles are still required to
|
||||||
|
* move to the next instruction, but those should be done later. */
|
||||||
|
/*jtag_tclk_clr(p);
|
||||||
|
jtag_tclk_set(p);*/
|
||||||
|
|
||||||
/* Read databus which contains the registers value */
|
/* Read databus which contains the registers value */
|
||||||
jtag_ir_shift(p, IR_DATA_CAPTURE);
|
jtag_ir_shift(p, IR_DATA_CAPTURE);
|
||||||
value = jtag_dr_shift_16(p, 0x0000);
|
value = jtag_dr_shift_16(p, 0x0000);
|
||||||
|
|
||||||
|
jtag_tclk_clr(p);
|
||||||
|
|
||||||
/* JTAG controls RW & BYTE */
|
/* JTAG controls RW & BYTE */
|
||||||
jtag_ir_shift(p, IR_CNTRL_SIG_16BIT);
|
jtag_ir_shift(p, IR_CNTRL_SIG_16BIT);
|
||||||
jtag_dr_shift_16(p, 0x2401);
|
jtag_dr_shift_16(p, 0x2401);
|
||||||
|
|
||||||
|
jtag_tclk_set(p);
|
||||||
|
|
||||||
/* Return value read from register */
|
/* Return value read from register */
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue