- print "Status: %s" % client.CCstatusstr();
- 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);
-
-# h = IntelHex(f);
-
-# client.CCchiperase();
-# for i in h._buf.keys():
-# #print "%04x: %04x"%(i,h[i>>1]);
-# if(i>=start and i<=stop and i&1==0):
-# client.CCwriteflash(i,h[i>>1]);
-# if(i%0x100==0):
-# print "%04x" % i;
+ print "Status: %s" % client.status();
+ client.CCchiperase();
+ print "Status: %s" %client.status();
+
+if(sys.argv[1]=="peekinfo"):
+ print "Select info flash."
+ client.CCwr_config(1);
+ print "Config is %02x" % client.CCrd_config();
+
+ 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]=="poke"):
+ client.CCpokeirambyte(int(sys.argv[2],16),
+ int(sys.argv[3],16));
+if(sys.argv[1]=="randtest"):
+ #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();
+
+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);
+
+ client.flash(f);
+if(sys.argv[1]=="lock"):
+ print "Status: %s" %client.status();
+ client.CClockchip();
+ print "Status: %s" %client.status();
+if(sys.argv[1]=="flashpage"):
+ target=0;
+ if(len(sys.argv)>2):
+ target=int(sys.argv[2],16);
+ print "Writing a page of flash from 0xF000 in XDATA"
+ client.CCflashpage(target);
+if(sys.argv[1]=="erasebuffer"):
+ print "Erasing flash buffer.";
+ client.CCeraseflashbuffer();
+