More glitching changes for MSP430.
[goodfet] / client / GoodFET.py
index e60c31a..a602b1e 100755 (executable)
@@ -72,7 +72,7 @@ class GoodFET:
         return self.symbols.get(name);
     def timeout(self):
         print "timeout\n";
-    def serInit(self, port=None, timeout=2):
+    def serInit(self, port=None, timeout=2, attemptlimit=None):
         """Open the serial port"""
         # Make timeout None to wait forever, 0 for non-blocking mode.
         
@@ -90,6 +90,10 @@ class GoodFET:
             glob_list = glob.glob("/dev/ttyUSB*");
             if len(glob_list) > 0:
                 port = glob_list[0];
+        if port is None:
+            glob_list = glob.glob("/dev/ttyU0");
+            if len(glob_list) > 0:
+                port = glob_list[0];
         if os.name=='nt':
             from scanwin32 import winScan;
             scan=winScan();
@@ -115,7 +119,9 @@ class GoodFET:
         connected=0;
         while connected==0:
             while self.verb!=0x7F or self.data!="http://goodfet.sf.net/":
-                if attempts>2:
+                if attemptlimit is not None and attempts >= attemptlimit:
+                    return
+                elif attempts>2:
                     print "Resyncing.";
                 self.serialport.flushInput()
                 self.serialport.flushOutput()
@@ -153,6 +159,8 @@ class GoodFET:
         if self.verbose: print "Connected after %02i attempts." % attempts;
         self.mon_connected();
         self.serialport.setTimeout(12);
+    def serClose(self):
+        self.serialport.close();
     def telosSetSCL(self, level):
         self.serialport.setRTS(not level)
     def telosSetSDA(self, level):
@@ -374,7 +382,8 @@ class GoodFET:
         return self.MONpeek8(address)+(self.MONpeek8(address+1)<<8);
     def eeprompeek(self,address):
         """Read a word of memory from the monitor."""
-        return self.MONpeek8(address)+(self.MONpeek8(address+1)<<8);
+        print "EEPROM peeking not supported for the monitor.";
+        #return self.MONpeek8(address)+(self.MONpeek8(address+1)<<8);
     def peekbysym(self,name):
         """Read a value by its symbol name."""
         #TODO include memory in symbol.
@@ -397,11 +406,17 @@ class GoodFET:
         return value;
     def setsecret(self,value):
         """Set a secret word for later retreival.  Used by glitcher."""
-        self.eeprompoke(0,value);
-        self.eeprompoke(1,value);
+        #self.eeprompoke(0,value);
+        #self.eeprompoke(1,value);
+        print "Secret setting is not yet suppored for this target.";
+        print "Aborting.";
+        
     def getsecret(self):
         """Get a secret word.  Used by glitcher."""
-        self.eeprompeek(0);
+        #self.eeprompeek(0);
+        print "Secret getting is not yet suppored for this target.";
+        print "Aborting.";
+        sys.exit();
     
     def dumpmem(self,begin,end):
         i=begin;