summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTat-Chee Wan (USM)2011-03-24 08:56:02 +0800
committerTat-Chee Wan (USM)2011-03-24 08:56:02 +0800
commita44b042507e4e196e08b4367364526371053591f (patch)
treee0fb6edef4e47552a6138607e891756bbe9c1688
parentcbd8be8c0e8fa2fd15d66eac06fe5af2e57f710a (diff)
fix incoming message packet acknowlegement parsing logic
-rw-r--r--Debugger/debug_comm.S18
1 files changed, 9 insertions, 9 deletions
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]