From 7544a1e347bc72edc26e6e4e7b9eec059c3324e3 Mon Sep 17 00:00:00 2001 From: travisutk Date: Tue, 28 Jul 2009 08:46:28 +0000 Subject: [PATCH] Cleaning up the Chipcon client. It's still slow as dirt. I need to make the block size larger than a byte! git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@72 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- client/GoodFET.py | 5 ++-- client/goodfet.cc | 61 +++++++++++++++++++++-------------------------- 2 files changed, 30 insertions(+), 36 deletions(-) diff --git a/client/GoodFET.py b/client/GoodFET.py index b87cee8..f48d9cd 100755 --- a/client/GoodFET.py +++ b/client/GoodFET.py @@ -216,7 +216,7 @@ class GoodFET: 0xFF00:"CCmissing"}; def CCidentstr(self): ident=self.CCident(); - chip=self.CCversions[ident&0xFF00]; + chip=self.CCversions.get(ident&0xFF00); return "%s/r%02x" % (chip, ident&0xFF); def CCident(self): """Get a chipcon's ID.""" @@ -294,10 +294,11 @@ class GoodFET: self.writecmd(0x30,0x20,0,self.data); ident=self.CCidentstr(); print "Target identifies as %s." % ident; - print "Status: %s." % self.CCstatusstr(); + #print "Status: %s." % self.CCstatusstr(); self.CCreleasecpu(); self.CChaltcpu(); print "Status: %s." % self.CCstatusstr(); + def CCstop(self): """Stop debugging.""" self.writecmd(0x30,0x21,0,self.data); diff --git a/client/goodfet.cc b/client/goodfet.cc index 445f358..10442b1 100755 --- a/client/goodfet.cc +++ b/client/goodfet.cc @@ -7,7 +7,6 @@ from GoodFET import GoodFET; from intelhex import IntelHex; - if(len(sys.argv)==1): print "Usage: %s verb [objects]\n" % sys.argv[0]; print "%s test" % sys.argv[0]; @@ -73,24 +72,24 @@ if(sys.argv[1]=="erase"): client.CCchiperase(); print "Status: %s" %client.CCstatusstr(); -if(sys.argv[1]=="flash"): - f=sys.argv[2]; - start=0; - stop=0xFFFF; - if(len(sys.argv)>3): - start=int(sys.argv[3],16); - if(len(sys.argv)>4): - stop=int(sys.argv[4],16); +# if(sys.argv[1]=="flash"): +# f=sys.argv[2]; +# start=0; +# stop=0xFFFF; +# if(len(sys.argv)>3): +# start=int(sys.argv[3],16); +# if(len(sys.argv)>4): +# stop=int(sys.argv[4],16); - h = IntelHex(f); +# h = IntelHex(f); - client.MSP430masserase(); - for i in h._buf.keys(): - #print "%04x: %04x"%(i,h[i>>1]); - if(i>=start and i<=stop and i&1==0): - client.MSP430writeflash(i,h[i>>1]); - if(i%0x100==0): - print "%04x" % i; +# client.MSP430masserase(); +# for i in h._buf.keys(): +# #print "%04x: %04x"%(i,h[i>>1]); +# if(i>=start and i<=stop and i&1==0): +# client.MSP430writeflash(i,h[i>>1]); +# if(i%0x100==0): +# print "%04x" % i; if(sys.argv[1]=="writedata"): f=sys.argv[2]; start=0; @@ -109,23 +108,6 @@ if(sys.argv[1]=="writedata"): print "%04x" % i; if(sys.argv[1]=="flashtest"): client.MSP430flashtest(); -if(sys.argv[1]=="verifycode"): - f=sys.argv[2]; - start=0; - stop=0xFFFF; - if(len(sys.argv)>3): - start=int(sys.argv[3],16); - if(len(sys.argv)>4): - stop=int(sys.argv[4],16); - - h = IntelHex(f); - for i in h._buf.keys(): - if(i>=start and i<=stop): - peek=client.MSP430peek(i) - if(h[i>>1]!=peek): - print "ERROR at %04x, found %04x not %04x"%(i,peek,h[i>>1]); - if(i%0x100==0): - print "%04x" % i; if(sys.argv[1]=="peekdata"): start=0x0000; if(len(sys.argv)>2): @@ -137,6 +119,17 @@ if(sys.argv[1]=="peekdata"): while start<=stop: print "%04x: %02x" % (start,client.CCpeekdatabyte(start)); start=start+1; +if(sys.argv[1]=="peekcode"): + start=0x0000; + if(len(sys.argv)>2): + start=int(sys.argv[2],16); + stop=start; + if(len(sys.argv)>3): + stop=int(sys.argv[3],16); + print "Peeking from %04x to %04x." % (start,stop); + while start<=stop: + print "%04x: %02x" % (start,client.CCpeekcodebyte(start)); + start=start+1; if(sys.argv[1]=="pokedata"): start=0x0000; val=0x00; -- 2.20.1