'goodfet.cc flash foo.hex' now works.
[goodfet] / client / GoodFETCC.py
index bb96d30..f426a5b 100644 (file)
@@ -11,7 +11,6 @@ import binascii;
 from GoodFET import GoodFET;
 from intelhex import IntelHex;
 
-
 class GoodFETCC(GoodFET):
     """A GoodFET variant for use with Chipcon 8051 Zigbeema SoC."""
     def CChaltcpu(self):
@@ -115,9 +114,9 @@ class GoodFETCC(GoodFET):
         return ord(self.data[0])
     CCstatusbits={0x80 : "erased",
                   0x40 : "pcon_idle",
-                  0x20 : "halted",
+                  0x20 : "cpu_halted",
                   0x10 : "pm0",
-                  0x08 : "halted",
+                  0x08 : "halt_status",
                   0x04 : "locked",
                   0x02 : "oscstable",
                   0x01 : "overflow"};
@@ -147,4 +146,14 @@ class GoodFETCC(GoodFET):
     def CCstep_instr(self):
         """Step one instruction."""
         self.writecmd(0x30,0x89,0,self.data);
-
+    def CCeraseflashbuffer(self):
+        """Erase the 2kB flash buffer"""
+        self.writecmd(0x30,0x99);
+    def CCflashpage(self,adr):
+        """Flash 2kB a page of flash from 0xF000 in XDATA"""
+        data=[adr&0xFF,
+              (adr>>8)&0xFF,
+              (adr>>16)&0xFF,
+              (adr>>24)&0xFF];
+        print "Flashing buffer to 0x%06x" % adr;
+        self.writecmd(0x30,0x95,4,data);