Monitor peeks work on the console.
[goodfet] / client / GoodFETCC.py
index 456f5c6..6001a59 100644 (file)
@@ -63,9 +63,14 @@ class GoodFETCC(GoodFET):
                     print "%-10s=0x%02x; /* %-50s */" % (
                         name,self.CCpeekdatabyte(eval(address)), description);
                     if bitfields!="": print bitfields.rstrip();
+    def halt(self):
+        """Halt the CPU."""
+        self.CChaltcpu();
     def CChaltcpu(self):
         """Halt the CPU."""
         self.writecmd(self.APP,0x86,0,self.data);
+    def resume(self):
+        self.CCreleasecpu();
     def CCreleasecpu(self):
         """Resume the CPU."""
         self.writecmd(self.APP,0x87,0,self.data);
@@ -166,6 +171,8 @@ class GoodFETCC(GoodFET):
             sys.exit(1);
             #return 2048;
         return size;
+    def getpc(self):
+        return self.CCgetPC();
     def CCgetPC(self):
         """Get a chipcon's PC."""
         self.writecmd(self.APP,0x83,0,None);
@@ -288,6 +295,18 @@ class GoodFETCC(GoodFET):
               (adr>>24)&0xFF];
         print "Flashing buffer to 0x%06x" % adr;
         self.writecmd(self.APP,0x95,4,data);
+    def dump(self,file,start=0,stop=0xffff):
+        """Dump an intel hex file from code memory."""
+        print "Dumping code from %04x to %04x as %s." % (start,stop,file);
+        h = IntelHex(None);
+        i=start;
+        while i<=stop:
+            h[i]=self.CCpeekcodebyte(i);
+            if(i%0x100==0):
+                print "Dumped %04x."%i;
+                h.write_hex_file(file); #buffer to disk.
+            i+=1;
+        h.write_hex_file(file);
 
     def flash(self,file):
         """Flash an intel hex file to code memory."""