From 07c74c76d0bf420c63757af2b66838090c2fd9d3 Mon Sep 17 00:00:00 2001 From: "William D. Jones" Date: Sat, 23 Oct 2021 13:43:46 -0400 Subject: [PATCH] msp430x5xx: Set base of transmit_packet buffer earlier to avoid incrementing past unsent data. --- src/portable/ti/msp430x5xx/dcd_msp430x5xx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c b/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c index ee85f0a7..6830fd1f 100644 --- a/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c +++ b/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c @@ -547,6 +547,7 @@ static void transmit_packet(uint8_t ep_num) } // Then actually commit to transmit a packet. + uint8_t * base = (xfer->buffer + xfer->queued_len); uint16_t remaining = xfer->total_len - xfer->queued_len; uint8_t xfer_size = (xfer->max_size < xfer->total_len) ? xfer->max_size : remaining; @@ -560,7 +561,6 @@ static void transmit_packet(uint8_t ep_num) if(ep_num == 0) { volatile uint8_t * ep0in_buf = &USBIEP0BUF; - uint8_t * base = (xfer->buffer + xfer->queued_len); for(uint16_t i = 0; i < xfer_size; i++) { ep0in_buf[i] = base[i]; @@ -582,7 +582,6 @@ static void transmit_packet(uint8_t ep_num) else #endif { - uint8_t * base = (xfer->buffer + xfer->queued_len); for(int i = 0; i < xfer_size; i++) { ep_buf[i] = base[i];