From a44b042507e4e196e08b4367364526371053591f Mon Sep 17 00:00:00 2001 From: Tat-Chee Wan (USM) Date: Thu, 24 Mar 2011 08:56:02 +0800 Subject: fix incoming message packet acknowlegement parsing logic --- Debugger/debug_comm.S | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'Debugger/debug_comm.S') diff --git a/Debugger/debug_comm.S b/Debugger/debug_comm.S index db9ac16..86ee823 100644 --- a/Debugger/debug_comm.S +++ b/Debugger/debug_comm.S @@ -756,6 +756,15 @@ _hasMsg2Copy: ldr r5, =debug_msgRxBufPtr ldr r5, [r5] /* Rx buffer Start Address */ +/* Need to account for Packet Acknowledgement */ +1: ldrb r0, [r5] + teq r0, #MSGBUF_NAKCHAR /* Look for '-' */ + beq exit_dbg__getMsgError /* FIXME: We can't handle retransmission, flag message error */ + teq r0, #MSGBUF_ACKCHAR /* Look for '+' */ + addeq r5, r5, #1 /* Adjust Buffer Start Pointer (excl '+') */ + subeq r4, r4, #1 /* Adjust Message Length */ + beq 1b /* Skip all Packet Acknowledgements */ + /* Note: Here we assume that we won't get a single ACK '+' or NAK '-' character message. * If we do, it'll be flagged as an error */ @@ -768,15 +777,6 @@ _hasMsg2Copy: mov r1, #0 strb r1, [r5, r2] /* Zero out '#' char for checksum calc later */ -/* Need to account for Packet Acknowledgement */ -1: ldrb r0, [r5] - teq r0, #MSGBUF_NAKCHAR /* Look for '-' */ - beq exit_dbg__getMsgError /* FIXME: We can't handle retransmission, flag message error */ - teq r0, #MSGBUF_ACKCHAR /* Look for '+' */ - addeq r5, r5, #1 /* Adjust Buffer Start Pointer (excl '+') */ - subeq r4, r4, #1 /* Adjust Message Length */ - beq 1b /* Skip all Packet Acknowledgements */ - #ifdef CHECK_GDBSTARTCHAR /* Checked in dbg__bkpt_waitCMD */ ldrb r0, [r5] -- cgit v1.2.3