X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2Fgoodfet.cc;h=3f2860dc9de8158c34cdc6360f9ec1136f49b550;hp=d79d16676df298caad56bbed0de1d0684a0e5088;hb=6648c78f1f6eca1ff5bc477d10b12c2125f31285;hpb=002c3c7923311e13f0ff2fcdfb292aa1c94ebe89 diff --git a/client/goodfet.cc b/client/goodfet.cc index d79d166..3f2860d 100755 --- a/client/goodfet.cc +++ b/client/goodfet.cc @@ -23,7 +23,9 @@ if(len(sys.argv)==1): print "%s verify $foo.hex [0x$start 0x$stop]" % sys.argv[0]; print "%s peekdata 0x$start [0x$stop]" % sys.argv[0]; print "%s pokedata 0x$adr 0x$val" % sys.argv[0]; - #print "%s peekcode 0x$start [0x$stop]" % sys.argv[0]; + print "%s peek 0x$iram" % sys.argv[0]; + print "%s poke 0x$iram 0x$val" % sys.argv[0]; + print "%s peekcode 0x$start [0x$stop]" % sys.argv[0]; sys.exit(); #Initailize FET and set baud rate @@ -97,13 +99,28 @@ if(sys.argv[1]=="peekinfo"): while start<=stop: print "%04x: %02x" % (start,client.CCpeekcodebyte(start)); start=start+1; -if(sys.argv[1]=="peek"): - print "%02x" % client.CCpeekirambyte(int(sys.argv[2],16)); if(sys.argv[1]=="poke"): client.CCpokeirambyte(int(sys.argv[2],16), int(sys.argv[3],16)); if(sys.argv[1]=="randtest"): - print "coming soon" + #Seed RNG + client.CCpokeirambyte(0xBD,0x01); #RNDH=0x01 + client.CCpokeirambyte(0xB4,0x04); #ADCCON1=0x04 + client.CCpokeirambyte(0xBD,0x01); #RNDH=0x01 + client.CCpokeirambyte(0xB4,0x04); #ADCCON1=0x04 + + #Dump values + for foo in range(1,10): + print "%02x" % client.CCpeekirambyte(0xBD); #RNDH + client.CCpokeirambyte(0xB4,0x04); #ADCCON1=0x04 + client.CCreleasecpu(); + client.CChaltcpu(); + print "%02x" % client.CCpeekdatabyte(0xDF61); #CHIP ID +if(sys.argv[1]=="adctest"): + # ADCTest 0xDF3A 0xDF3B + print "ADC TEST %02x%02x" % ( + client.CCpeekdatabyte(0xDF3A), + client.CCpeekdatabyte(0xDF3B)); if(sys.argv[1]=="config"): print "Config is %02x" % client.CCrd_config(); @@ -123,14 +140,14 @@ if(sys.argv[1]=="flash"): print "Wiping Flash." #Wipe all of flash. - client.CCchiperase(); + #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: client.CCflashpage(page); - client.CCeraseflashbuffer(); + #client.CCeraseflashbuffer(); bcount=0; print "Flashed page at %06x" % page page+=pagelen; @@ -140,7 +157,7 @@ if(sys.argv[1]=="flash"): h[i]); bcount+=1; if(i%0x100==0): - print "Buffering %04x to %06x" % (i,page); + print "Buffering %04x toward %06x" % (i,page); #last page client.CCflashpage(page); print "Flashed final page at %06x" % page; @@ -188,6 +205,18 @@ if(sys.argv[1]=="peekdata"): while start<=stop: print "%04x: %02x" % (start,client.CCpeekdatabyte(start)); start=start+1; +if(sys.argv[1]=="peek"): + 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.CCpeekirambyte(start)); + start=start+1; + if(sys.argv[1]=="peekcode"): start=0x0000; if(len(sys.argv)>2):