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);
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",
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();
"""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);
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);
"""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();