Flushing on DEBUG messages.
[goodfet] / client / GoodFETCC.py
index 69ef8b9..83d0b9f 100644 (file)
@@ -13,6 +13,8 @@ from intelhex import IntelHex;
 
 class GoodFETCC(GoodFET):
     """A GoodFET variant for use with Chipcon 8051 Zigbeema SoC."""
+    APP=0x30;
+    
     def CChaltcpu(self):
         """Halt the CPU."""
         self.writecmd(0x30,0x86,0,self.data);
@@ -72,6 +74,9 @@ class GoodFETCC(GoodFET):
     def CClockchip(self):
         """Set the flash lock bit in info mem."""
         self.writecmd(0x30, 0x9A, 0, None);
+    def lock(self):
+        """Set the flash lock bit in info mem."""
+        self.CClockchip();
     
 
     CCversions={0x0100:"CC1110",
@@ -83,13 +88,13 @@ class GoodFETCC(GoodFET):
                 0xB500:"CC2531",
                 0xFF00:"CCmissing"};
     CCpagesizes={0x01: 1024, #"CC1110",
-                0x85: 2048, #"CC2430",
-                0x89: 2048, #"CC2431",
-                0x81: 1024, #"CC2510",
-                0x91: 1024, #"CC2511",
-                0xA5: 2048, #"CC2530", #page 52 of SWRU191
-                0xB5: 2048, #"CC2531",
-                0xFF: 0    } #"CCmissing"};
+                 0x85: 2048, #"CC2430",
+                 0x89: 2048, #"CC2431",
+                 0x81: 1024, #"CC2510",
+                 0x91: 1024, #"CC2511",
+                 0xA5: 2048, #"CC2530", #page 52 of SWRU191
+                 0xB5: 2048, #"CC2531",
+                 0xFF: 0    } #"CCmissing"};
 
     def CCidentstr(self):
         ident=self.CCident();
@@ -105,8 +110,13 @@ class GoodFETCC(GoodFET):
         """Get a chipcon's ID."""
         self.writecmd(0x30,0x8B,0,None);
         chip=ord(self.data[0]);
-        
-        return self.CCpagesizes.get(chip);
+        size=self.CCpagesizes.get(chip);
+        if(size<10):
+            print "ERROR: Pagesize undefined.";
+            print "chip=%02x" %chip;
+            sys.exit(1);
+            #return 2048;
+        return size;
     def CCgetPC(self):
         """Get a chipcon's PC."""
         self.writecmd(0x30,0x83,0,None);
@@ -157,6 +167,10 @@ class GoodFETCC(GoodFET):
     def CCchiperase(self):
         """Erase all of the target's memory."""
         self.writecmd(0x30,0x80,0,None);
+    def erase(self):
+        """Erase all of the target's memory."""
+        self.CCchiperase();
+    
     def CCstatus(self):
         """Check the status."""
         self.writecmd(0x30,0x84,0,None);
@@ -192,7 +206,7 @@ class GoodFETCC(GoodFET):
         """Start debugging."""
         self.writecmd(0x30,0x20,0,self.data);
         ident=self.CCidentstr();
-        print "Target identifies as %s." % ident;
+        #print "Target identifies as %s." % ident;
         #print "Status: %s." % self.CCstatusstr();
         self.CCreleasecpu();
         self.CChaltcpu();