More glitching changes for MSP430.
[goodfet] / client / GoodFETMSP430.py
index df6f20e..fc8e99b 100644 (file)
@@ -42,10 +42,13 @@ class GoodFETMSP430(GoodFET):
         return DeviceID;
     def peek16(self,adr,memory="vn"):
         return self.MSP430peek(adr);
         return DeviceID;
     def peek16(self,adr,memory="vn"):
         return self.MSP430peek(adr);
+    def peek(self,adr,memory="vn"):
+        return self.MSP430peek(adr);
     def peek8(self,adr, memory="vn"):
         adr=self.MSP430peek(adr&~1);
         if adr&1==0: return adr&0xFF;
         else: return adr>>8;
     def peek8(self,adr, 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,
     def MSP430peek(self,adr):
         """Read a word at an address."""
         self.data=[adr&0xff, (adr&0xff00)>>8,
@@ -79,6 +82,12 @@ class GoodFETMSP430(GoodFET):
                    val&0xff, (val&0xff00)>>8];
         self.writecmd(self.MSP430APP,0xE1,6,self.data);
         return ord(self.data[0])+(ord(self.data[1])<<8);
                    val&0xff, (val&0xff00)>>8];
         self.writecmd(self.MSP430APP,0xE1,6,self.data);
         return ord(self.data[0])+(ord(self.data[1])<<8);
+    def setsecret(self,value):
+        """Set a secret word for later retreival.  Used by glitcher."""
+        self.MSP430pokeflash(0xFFFE,value);
+    def getsecret(self):
+        """Get a secret word.  Used by glitcher."""
+        return self.peek(0xfffe);
     def MSP430pokeflashblock(self,adr,data):
         """Write many words to flash memory at an address."""
         self.data=[adr&0xff, (adr&0xff00)>>8,
     def MSP430pokeflashblock(self,adr,data):
         """Write many words to flash memory at an address."""
         self.data=[adr&0xff, (adr&0xff00)>>8,