Better packet len, confirmed that odd frequencies fail.
[goodfet] / client / GoodFETMSP430.py
index 36a0e1b..671bccd 100644 (file)
@@ -10,12 +10,13 @@ import sys, time, string, cStringIO, struct, glob, serial, os;
 from GoodFET import GoodFET;
 
 class GoodFETMSP430(GoodFET):
+    APP=0x11;
     MSP430APP=0x11;  #Changed by inheritors.
     CoreID=0;
     DeviceID=0;
     JTAGID=0;
     MSP430ident=0;
-    def MSP430setup(self):
+    def setup(self):
         """Move the FET into the MSP430 JTAG application."""
         self.writecmd(self.MSP430APP,0x10,0,None);
         
@@ -29,12 +30,18 @@ class GoodFETMSP430(GoodFET):
         CoreID=ord(self.data[0])+(ord(self.data[1])<<8);
         return CoreID;
     def MSP430deviceid(self):
-        """Get the Core ID."""
+        """Get the Device ID."""
         self.writecmd(self.MSP430APP,0xF1);
         DeviceID=(
             ord(self.data[0])+(ord(self.data[1])<<8)+
             (ord(self.data[2])<<16)+(ord(self.data[3])<<24));
         return DeviceID;
+    def peek16(self,adr,memory="vn"):
+        return self.MSP430peek(adr);
+    def peek8(self,address, memory="vn"):
+        adr=self.MSP430peek(adr&~1);
+        if adr&1==0: return adr&0xFF;
+        else: return adr>>8;
     def MSP430peek(self,adr):
         """Read a word at an address."""
         self.data=[adr&0xff, (adr&0xff00)>>8,
@@ -73,14 +80,14 @@ class GoodFETMSP430(GoodFET):
         #print "%2x %2x %2x %2x ..." % (data[0], data[1], data[2], data[3]);
         self.writecmd(self.MSP430APP,0xE1,len(self.data),self.data);
         return ord(self.data[0])+(ord(self.data[1])<<8);
-    def MSP430start(self):
+    def start(self):
         """Start debugging."""
         self.writecmd(self.MSP430APP,0x20,0,self.data);
         self.JTAGID=ord(self.data[0]);
         #print "Identified as %02x." % self.JTAGID;
         if(not (self.JTAGID==0x89 or self.JTAGID==0x91)):
-            print "Error, misidentified as %02x." % self.JTAGID;
-        
+            print "Error, misidentified as %02x.\nCheck wiring, as this should be 0x89 or 0x91." % self.JTAGID;
+        self.MSP430haltcpu();
     def MSP430haltcpu(self):
         """Halt the CPU."""
         self.writecmd(self.MSP430APP,0xA0,0,self.data);
@@ -124,7 +131,7 @@ class GoodFETMSP430(GoodFET):
         0xf249: "MSP430F24x",
         0xf26f: "MSP430F261x",
         0xf237: "MSP430F23x0",
-        
+        0xf201: "MSP430F201x",
         
         #MSP430F1xx
         0xf16c: "MSP430F161x",