aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/armdebug/Host/nxt-gdb-server.py
diff options
context:
space:
mode:
authorTat-Chee Wan (USM)2011-04-01 12:13:46 +0800
committerTat-Chee Wan (USM)2011-04-01 12:13:46 +0800
commita49b11a219f6876e63844c2b89f45122f64ab702 (patch)
tree47ddbff09837ea1262431a8fe5d6f479219a7e3f /AT91SAM7S256/armdebug/Host/nxt-gdb-server.py
parent5fdfaa83874590fcd9082659a55abd5dcca05c4f (diff)
parent1783911a091554b2fec8acbf10f46a3e6fb02575 (diff)
Merge branch 'master' of ssh://svc.cs.usm.my/~/gitrepo-bare/armdebug
Diffstat (limited to 'AT91SAM7S256/armdebug/Host/nxt-gdb-server.py')
-rwxr-xr-xAT91SAM7S256/armdebug/Host/nxt-gdb-server.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/AT91SAM7S256/armdebug/Host/nxt-gdb-server.py b/AT91SAM7S256/armdebug/Host/nxt-gdb-server.py
index ee03899..47a552d 100755
--- a/AT91SAM7S256/armdebug/Host/nxt-gdb-server.py
+++ b/AT91SAM7S256/armdebug/Host/nxt-gdb-server.py
@@ -22,6 +22,8 @@ import select
import usb
import struct
+CTRLC = chr(3)
+STATUS_QUERY = "$?#3F"
DEFAULT_PORT = 2828
SELECT_TIMEOUT = 0.1
DEBUG = True
@@ -70,6 +72,14 @@ class NXTGDBServer:
"""Split datas in GDB commands and make segments with each command."""
segs = [ ]
self.in_buf += data
+ # Find Ctrl-C (assumed to be by itself and not following a normal command)
+ end = self.in_buf.find (CTRLC)
+ if end >= 0:
+ msg, self.in_buf = self.in_buf[0:end+1], self.in_buf[end+1:]
+ assert len (msg) <= self.pack_size, "Ctrl-C Command Packet too long!"
+ segs.append (self.pack (msg, 0))
+ end = self.in_buf.find (CTRLC)
+
end = self.in_buf.find ('#')
# Is # found and enough place for the checkum?
while end >= 0 and end < len (self.in_buf) - 2:
@@ -142,6 +152,9 @@ class NXTGDBServer:
data = client.recv (self.recv_size)
data = data.strip()
if len (data) > 0:
+ #if len (data) == 1 and data.find(CTRLC) >= 0:
+ # print "CTRL-C Received!"
+ # data = STATUS_QUERY
if DEBUG:
print "[GDB->NXT] %s" % data
segments = self.segment (data)