From: travisutk Date: Wed, 6 Jan 2010 16:27:25 +0000 (+0000) Subject: Client stuff. X-Git-Url: http://git.rot13.org/?p=goodfet;a=commitdiff_plain;h=ed0549956cb25b94cbd1951be718efc1dbfdf1c9 Client stuff. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@258 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- diff --git a/client/GoodFETCC.py b/client/GoodFETCC.py index b67b337..a515409 100644 --- a/client/GoodFETCC.py +++ b/client/GoodFETCC.py @@ -93,6 +93,11 @@ class GoodFETCC(GoodFET): hi=ord(self.data[0]); lo=ord(self.data[1]); return (hi<<8)+lo; + def CCcmd(self,phrase): + self.writecmd(0x30,0x00,len(phrase),phrase); + val=ord(self.data[0]); + print "Got %02x" % val; + return val; def CCdebuginstr(self,instr): self.writecmd(0x30,0x88,len(instr),instr); return ord(self.data[0]); diff --git a/client/goodfet.avr b/client/goodfet.avr index 8692dcf..2418854 100755 --- a/client/goodfet.avr +++ b/client/goodfet.avr @@ -11,7 +11,7 @@ if(len(sys.argv)==1): print "%s test" % sys.argv[0]; print "%s info" % sys.argv[0]; print "%s lockbits [value]" % sys.argv[0]; - #print "%s dump $foo.hex [0x$start 0x$stop]" % sys.argv[0]; + print "%s dumpflash $foo.hex [0x$start 0x$stop]" % sys.argv[0]; print "%s erase" % sys.argv[0]; #print "%s flash $foo.hex [0x$start 0x$stop]" % sys.argv[0]; #print "%s verify $foo.hex [0x$start 0x$stop]" % sys.argv[0]; @@ -63,7 +63,7 @@ if(sys.argv[1]=="lockbits"): -if(sys.argv[1]=="dump"): +if(sys.argv[1]=="dumpflash"): f = sys.argv[2]; start=0x0000; stop=0xFFFF; @@ -96,6 +96,7 @@ if(sys.argv[1]=="peekeeprom"): while start<=stop: print "%06x: %02x" % (start,client.eeprompeek(start)); start=start+1; + if(sys.argv[1]=="peekflash"): start=0x0000; if(len(sys.argv)>2): diff --git a/client/goodfet.cc b/client/goodfet.cc index 2905eb5..e937398 100755 --- a/client/goodfet.cc +++ b/client/goodfet.cc @@ -36,6 +36,17 @@ client.serInit() client.setup(); client.start(); +if(sys.argv[1]=="explore"): + print "Exploring undefined commands." + print "Status: %s" %client.CCstatusstr(); + + cmd=0x04; #read status + for foo in range(0,0x5): + client.CCcmd([(0x0F<<3)|(0x00)|0x03,0x09<<3]); + print "Status %02x: %s" % (foo,client.CCstatusstr()); + for foo in range(0,3): + print "PC: %04x" % client.CCgetPC(); + if(sys.argv[1]=="test"): client.CCtest(); if(sys.argv[1]=="deadtest"):