jtag_go_to_state(STATE_TEST_LOGIC_RESET);
}
-uint8_t data[512];
+uint8_t data[1024];
uint8_t* ptr;
uint8_t rx_cnt;
{
uint8_t ret;
*ptr++ = MC_DATA_TMS | MC_DATA_IN | MC_DATA_LSB | MC_DATA_BITS;
- *ptr++ = 0;
-
- uint8_t data0 = 0;
- if(tdi)
- data0 |= 0x80;
- if(tms)
- data0 |= 0x01;
-
- *ptr++ = data0;
+ *ptr++ = 0;
+ *ptr++ = (tdi ? 0x80 : 0) | (tms ? 0x01 : 0);
rx_cnt++;
}
bool must_end)
{
- printf("Remain: %u \n", mpsse_ftdic.readbuffer_remaining);
-
uint32_t bit_count = data_bits;
uint32_t byte_count = (data_bits + 7) / 8;
rx_cnt = 0;
mpsse_xfer(data, ptr-data, rx_cnt);
+ /* Data out from the FTDI is actually from an internal shift register
+ * Instead of reconstructing the bitpattern, we can just take every 8th byte.*/
for(int i = 0; i < rx_cnt/8; i++)
output_data[i] = data[7+i*8];
-
-
- printf("finish: %u - %u \n", rx_cnt, mpsse_ftdic.readbuffer_remaining);
-
}
void jtag_state_ack(bool tms)
mpsse_xfer(data, 3, 0);
}
}
-
- printf(" - Remain: %u \n", mpsse_ftdic.readbuffer_remaining);
}
void jtag_wait_time(uint32_t microseconds)
data[1] = remain;
mpsse_xfer(data, 2, 0);
}
-
-
- printf(" -- Remain: %u \n", mpsse_ftdic.readbuffer_remaining);
}