Autodiscovery of data rate during auto-tune.
[goodfet] / client / GoodFET.py
index e459a91..98c2494 100755 (executable)
@@ -372,8 +372,17 @@ class GoodFET:
     def eeprompeek(self,address):
         """Read a word of memory from the monitor."""
         return self.peekbyte(address)+(self.peekbyte(address+1)<<8);
-    
-    def pokebyte(self,address,value):
+    def peekbysym(self,name):
+        """Read a value by its symbol name."""
+        #TODO include memory in symbol.
+        reg=self.symbols.get(name);
+        return self.peek8(reg,"data");
+    def pokebysym(self,name,val):
+        """Write a value by its symbol name."""
+        #TODO include memory in symbol.
+        reg=self.symbols.get(name);
+        return self.pokebyte(reg,val);
+    def pokebyte(self,address,value,memory="vn"):
         """Set a byte of memory by the monitor."""
         self.data=[address&0xff,address>>8,value];
         self.writecmd(0,0x03,3,self.data);
@@ -481,7 +490,7 @@ class GoodFET:
         return self.peek16(0x56);
     # The following functions ought to be implemented in
     # every client.
-
+    
     def infostring(self):
         a=self.peekbyte(0xff0);
         b=self.peekbyte(0xff1);
@@ -528,13 +537,19 @@ class GoodFET:
         return self.peekbyte(address); #monitor
     def peekword(self,address, memory="vn"):
         """Peek a natively sized word of memory."""
-        return self.peek(address); #monitor
+        return self.peek16(address); #monitor
     def peekblock(self,address,length,memory="vn"):
         """Return a block of data."""
         data=range(0,length);
         for foo in range(0,length):
             data[foo]=self.peek8(address+foo,memory);
         return data;
+    def pokeblock(self,address,bytes,memory="vn"):
+        """Poke a block of a data into memory at an address."""
+        for foo in bytes:
+            self.pokebyte(address,foo,memory);
+            address=address+1;
+        return;
     def loadsymbols(self):
         """Load symbols from a file."""
         return;