X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2Fgoodfet.cc;h=52eb1dddabc8dc4335ff93d5cf1683a06d1d2843;hp=3f2860dc9de8158c34cdc6360f9ec1136f49b550;hb=c7f111a9f649b3f7c0ce654f5b7ecb07140e438b;hpb=8596546102fe3fbcb776ca8d47c1a913cac7636d diff --git a/client/goodfet.cc b/client/goodfet.cc index 3f2860d..52eb1dd 100755 --- a/client/goodfet.cc +++ b/client/goodfet.cc @@ -33,9 +33,20 @@ client=GoodFETCC(); client.serInit() #Connect to target -client.CCsetup(); -client.CCstart(); +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"): @@ -135,14 +146,15 @@ if(sys.argv[1]=="flash"): h = IntelHex(f); page = 0x0000; - pagelen = 2048; #2kB pages in 32-bit words + pagelen = client.CCpagesize(); #2048; #2kB pages in 32-bit words + bcount = 0; print "Wiping Flash." #Wipe all of flash. #client.CCchiperase(); #Wipe the RAM buffer for the next flash page. - #client.CCeraseflashbuffer(); + client.CCeraseflashbuffer(); for i in h._buf.keys(): while(i>page+pagelen): if bcount>0: @@ -216,7 +228,23 @@ if(sys.argv[1]=="peek"): while start<=stop: print "%04x: %02x" % (start,client.CCpeekirambyte(start)); start=start+1; - +if(sys.argv[1]=="verify"): + 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 i2): @@ -238,4 +266,4 @@ if(sys.argv[1]=="pokedata"): print "Poking %04x to become %02x." % (start,val); client.CCpokedatabyte(start,val); -client.CCstop(); +client.stop();