From 9aeaea5d9fb898c612b2a0b7c9beef8ca6de45e5 Mon Sep 17 00:00:00 2001 From: sys64738 Date: Sat, 25 Sep 2021 00:46:07 +0200 Subject: [PATCH] oops --- bsp/rp2040/m_default/dap_jtag.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bsp/rp2040/m_default/dap_jtag.c b/bsp/rp2040/m_default/dap_jtag.c index 655880d..5de7670 100644 --- a/bsp/rp2040/m_default/dap_jtag.c +++ b/bsp/rp2040/m_default/dap_jtag.c @@ -216,7 +216,8 @@ void JTAG_Sequence(uint32_t info, const uint8_t* tdi, uint8_t* tdo) { uint8_t ov = *rx; --rxremain; //printf("rx %02x rem %lu smpc=%x\n", ov, rxremain, pio_sm_get_pc(PINOUT_JTAG_PIO_DEV, jtagsm)); - if ((info & JTAG_SEQUENCE_TDO)) { + // avoid writing extra byte generated by final 'push' insn, would cause buffer ovf + if ((info & JTAG_SEQUENCE_TDO) && oi < bytelen) { if (last_shift && oi == bytelen - 1) { //printf("orig=%02x swap=%02x shamt=%lu result=%02x\n", ov, bitswap(ov), last_shift, bitswap(ov)>>last_shift); tdo[oi] = bitswap(ov) >> last_shift;