X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2Fgoodfet.monitor;h=8e90c59fd2b29d63fae6d02e3b9283c4cce7ca5b;hp=249454f568be6750e34db01bdd795c7a5a53029d;hb=671771f8909b6821de8aef5b90f9390ffb648988;hpb=8f05454eedc506a9b46c2b8bce9af2480089827f diff --git a/client/goodfet.monitor b/client/goodfet.monitor index 249454f..8e90c59 100755 --- a/client/goodfet.monitor +++ b/client/goodfet.monitor @@ -15,19 +15,61 @@ if(len(sys.argv)==1): print "%s verify $foo.hex [0x$start 0x$stop]" % sys.argv[0]; print "%s ramfill" % sys.argv[0]; print "%s ramdepth" % sys.argv[0]; + print "%s info" % sys.argv[0]; + print "%s call 0x$start" % sys.argv[0]; + print "%s exec '0x35 0x00 0x..'" % sys.argv[0]; + print "%s listapps [full]" % sys.argv[0] sys.exit(); -#Initailize FET and set baud rate +#Initialize FET and set baud rate client=GoodFET(); client.serInit() +#client.verbose=1; +if(sys.argv[1]=="on"): + client.dir(0xFF); + client.out(0xFF); +if(sys.argv[1]=="off"): + client.out(0x00); +if(sys.argv[1]=="glitchtest"): + client.writecmd(client.GLITCHAPP,0x20,0,None); + +if(sys.argv[1]=="call"): + adr=int(sys.argv[2],16); + print "Calling %04x" % adr; + client.call(adr); +if(sys.argv[1]=="exec"): + code=""; + for foo in sys.argv[2].split(" "): + code+=chr(int(foo,16)); + code+="\x30\x41"; + client.execute(code); + +if(sys.argv[1]=="info"): + client.monitor_info() +if(sys.argv[1]=="clocktest"): + print "GoodFET with %s MCU" % client.infostring(); + clocking=client.monitorgetclock(); + print "Clocked at 0x%04x" % clocking; + for foo in range(1,50): + client.monitorsetclock(clocking+foo); + print "+0x%04x: %s" % (foo,client.infostring()); + client.monitorsetclock(clocking-foo); + print "-0x%04x: %s" % (foo,client.infostring()); + +if(sys.argv[1]=="listapps"): + full = (len(sys.argv) > 2) and (sys.argv[2]=="full") + client.monitor_list_apps(full); + if(sys.argv[1]=="ramfill"): client.monitor_ram_pattern(); if(sys.argv[1]=="ramdepth"): print "0x%04x RAM bytes free." % client.monitor_ram_depth(); if(sys.argv[1]=="test"): client.monitortest(); +if(sys.argv[1]=="findbaud"): + client.findbaud(); if(sys.argv[1]=="dump"): f = sys.argv[2]; start=0x0200; @@ -41,7 +83,7 @@ if(sys.argv[1]=="dump"): h = IntelHex16bit(None); i=start; while i>1]=client.peekword(i); + h[i>>1]=client.peek16(i); if(i%0x100==0): print "Dumped %04x."%i; i+=2; @@ -56,6 +98,7 @@ if(sys.argv[1]=="peek"): stop=0xFFFF; if(len(sys.argv)>2): start=int(sys.argv[2],16); + stop=start+1 if(len(sys.argv)>3): stop=int(sys.argv[3],16); @@ -78,7 +121,4 @@ if(sys.argv[1]=="verify"): if(i%0x100==0): print "%04x" % i; -if(sys.argv[1]=="whatever"): - for i in [0x24FF, 0x2500, 0x2502, 0x2504]: - print "%04x" % client.peekword(i);