Introduced 'goodfet.cc infotest' which repeatedly request the chip info to distinguish between a bad connection and a flaky one.
GoodFETCC.py now retries an initial connection if the info return 0xFFFF or 0x0000, fixing some issues with capacitors on !RST lines.
git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@813
12e2690d-a6be-4b82-a7b7-
67c4a43b65c8
"""Start debugging."""
self.setup();
self.writecmd(self.APP,0x20,0,self.data);
"""Start debugging."""
self.setup();
self.writecmd(self.APP,0x20,0,self.data);
- ident=self.CCidentstr();
+ ident=self.CCident();
+ if ident==0xFFFF or ident==0x0000:
+ self.writecmd(self.APP,0x20,0,self.data);
+ ident=self.CCident();
+
+
#print "Target identifies as %s." % ident;
#print "Status: %s." % self.status();
self.CCreleasecpu();
#print "Target identifies as %s." % ident;
#print "Status: %s." % self.status();
self.CCreleasecpu();
print "%s test" % sys.argv[0];
print "%s term" % sys.argv[0];
print "%s info" % sys.argv[0];
print "%s test" % sys.argv[0];
print "%s term" % sys.argv[0];
print "%s info" % sys.argv[0];
+ print "%s infotest" % sys.argv[0];
print "%s halt" % sys.argv[0];
print "%s regs" % sys.argv[0];
print "%s dumpcode $foo.hex [0x$start 0x$stop]" % sys.argv[0];
print "%s halt" % sys.argv[0];
print "%s regs" % sys.argv[0];
print "%s dumpcode $foo.hex [0x$start 0x$stop]" % sys.argv[0];
#client.CCdebuginstr([0x02, 0xf0, 0x00]); #ljmp 0xF000
client.resume();
#client.CCdebuginstr([0x02, 0xf0, 0x00]); #ljmp 0xF000
client.resume();
- RFST=0xDFE1
- client.CC_RFST_CAL(); #SCAL
- time.sleep(1);
-
- maxrssi=0;
- while 1:
- client.CC_RFST_RX(); #SRX
- rssi=client.RF_getrssi();
- client.CC_RFST_IDLE(); #idle
- time.sleep(0.01);
- string="";
- for foo in range(0,rssi>>2):
- string=("%s."%string);
- print "%02x %04i %04i %s" % (rssi,rssi, maxrssi, string);
- if rssi>maxrssi:
- maxrssi=(rssi);
- if rssi>threshold:
- #print "Triggered jamming for 1s.";
- client.RF_carrier();
- time.sleep(1);
- print "JAMMING JAMMING JAMMING JAMMING";
if(sys.argv[1]=="rssi"):
client.CC1110_crystal();
client.RF_idle();
if(sys.argv[1]=="rssi"):
client.CC1110_crystal();
client.RF_idle();
if(sys.argv[1]=="halt"):
print "Halting CPU."
client.halt();
if(sys.argv[1]=="halt"):
print "Halting CPU."
client.halt();
+
+if(sys.argv[1]=="infotest"):
+ while 1:
+ client.start();
+ print "Ident %s" % client.CCidentstr();
if(sys.argv[1]=="info"):
print "Ident %s" % client.CCidentstr();
if(sys.argv[1]=="info"):
print "Ident %s" % client.CCidentstr();