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);
page = 0x0000;
pagelen = client.CCpagesize(); #2048; #2kB pages in 32-bit words
+ print "page=%04x, pagelen=%04x" % (page,pagelen);
+
bcount = 0;
#Wipe the RAM buffer for the next flash page.
case 0x81://CC2510
case 0x91://CC2511
flash_word_size=0x02;
- //debugstr("2 bytes/flash word");
+ debugstr("2 bytes/flash word");
break;
default:
- flash_word_size=0x04;
- break;
- //debugstr("Warning: Guessing flash word size.");
+ debugstr("Warning: Guessing flash word size.");
case 0x85://CC2430
case 0x89://CC2431
debugstr("4 bytes/flash word");
+ flash_word_size=0x04;
break;
}
return;
}
+ if(flash_word_size==0){
+ debugstr("Flash word size is wrong.");
+ while(1);
+ }
+
//Routine comes next
//WRITE_XDATA_MEMORY(IN: 0xF000 + FLASH_PAGE_SIZE, sizeof(routine), routine);
cc_write_xdata(0xF000+MAXFLASHPAGE_SIZE,