From: oharboe at B. <oh...@ma...> - 2009-04-22 15:54:04
|
Author: oharboe Date: 2009-04-22 15:54:04 +0200 (Wed, 22 Apr 2009) New Revision: 1509 Modified: trunk/src/jtag/jlink.c Log: Zach Welch <zw...@su...> do not pad TMS Modified: trunk/src/jtag/jlink.c =================================================================== --- trunk/src/jtag/jlink.c 2009-04-22 11:37:27 UTC (rev 1508) +++ trunk/src/jtag/jlink.c 2009-04-22 13:54:04 UTC (rev 1509) @@ -623,6 +623,10 @@ int bit_index = tap_length % 8; u8 bit = 1 << bit_index; + // we do not pad TMS, so be sure to initialize all bits + if (0 == bit_index) + tms_buffer[index] = tdi_buffer[index] = 0; + if (tms) tms_buffer[index] |= bit; else @@ -669,16 +673,9 @@ if (!tap_length) return ERROR_OK; - /* Pad last byte so that tap_length is divisible by 8 */ - while (tap_length % 8 != 0) - { - /* More of the last TMS value keeps us in the same state, - * analogous to free-running JTAG interfaces. */ - jlink_tap_append_step(last_tms, 0); - } + // number of full bytes (plus one if some would be left over) + byte_length = tap_length / 8 + !!(tap_length % 8); - byte_length = tap_length / 8; - usb_out_buffer[0] = EMU_CMD_HW_JTAG3; usb_out_buffer[1] = 0; usb_out_buffer[2] = (tap_length >> 0) & 0xff; |