Removed some vestigal code from 'goodfet.cc reflex'.
authortravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Sat, 25 Dec 2010 01:59:22 +0000 (01:59 +0000)
committertravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Sat, 25 Dec 2010 01:59:22 +0000 (01:59 +0000)
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

client/GoodFETCC.py
client/goodfet.cc

index 474685f..1f6b70a 100644 (file)
@@ -687,7 +687,12 @@ class GoodFETCC(GoodFET):
         """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();
index e431c90..a3427f9 100755 (executable)
@@ -114,6 +114,7 @@ if(len(sys.argv)==1):
     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];
@@ -176,27 +177,7 @@ if(sys.argv[1]=="reflex"):
         #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();
@@ -331,6 +312,11 @@ if(sys.argv[1]=="status"):
 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();