From b573cc6c766c1640cf47159c1920f431df7f2d92 Mon Sep 17 00:00:00 2001 From: travisutk Date: Sat, 25 Dec 2010 01:59:22 +0000 Subject: [PATCH] Removed some vestigal code from 'goodfet.cc reflex'. 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 | 7 ++++++- client/goodfet.cc | 28 +++++++--------------------- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/client/GoodFETCC.py b/client/GoodFETCC.py index 474685f..1f6b70a 100644 --- a/client/GoodFETCC.py +++ b/client/GoodFETCC.py @@ -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(); diff --git a/client/goodfet.cc b/client/goodfet.cc index e431c90..a3427f9 100755 --- a/client/goodfet.cc +++ b/client/goodfet.cc @@ -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(); -- 2.20.1