X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2FGoodFETMSP430.py;h=36a0e1b3f9510708484c43bbaf8df60e347331c8;hp=4ee6e4f138657f4d15c436ca0c4587eac89b2c45;hb=aa5d68445bc502a8ce1cf023d16cba5e089821f4;hpb=f4a6b415e762bcdc560f3ea655851d16f483ea5a diff --git a/client/GoodFETMSP430.py b/client/GoodFETMSP430.py index 4ee6e4f..36a0e1b 100644 --- a/client/GoodFETMSP430.py +++ b/client/GoodFETMSP430.py @@ -65,7 +65,14 @@ class GoodFETMSP430(GoodFET): val&0xff, (val&0xff00)>>8]; self.writecmd(self.MSP430APP,0xE1,6,self.data); return ord(self.data[0])+(ord(self.data[1])<<8); - + def MSP430pokeflashblock(self,adr,data): + """Write many words to flash memory at an address.""" + self.data=[adr&0xff, (adr&0xff00)>>8, + (adr&0xff0000)>>16,(adr&0xff000000)>>24]+data; + #print "Writing %i bytes to %x" % (len(data),adr); + #print "%2x %2x %2x %2x ..." % (data[0], data[1], data[2], data[3]); + self.writecmd(self.MSP430APP,0xE1,len(self.data),self.data); + return ord(self.data[0])+(ord(self.data[1])<<8); def MSP430start(self): """Start debugging.""" self.writecmd(self.MSP430APP,0x20,0,self.data); @@ -121,11 +128,11 @@ class GoodFETMSP430(GoodFET): #MSP430F1xx 0xf16c: "MSP430F161x", - 0xf149: "MSP430F13x", #or f14x(1) - 0xf112: "MSP430F11x", #or f11x1 + 0xf149: "MSP430F13x", #or f14x(1) + 0xf112: "MSP430F11x", #or f11x1 0xf143: "MSP430F14x", - 0xf112: "MSP430F11x", #or F11x1A - 0xf123: "MSP430F1xx", #or F123x + 0xf112: "MSP430F11x", #or F11x1A + 0xf123: "MSP430F1xx", #or F123x 0x1132: "MSP430F1122", #or F1132 0x1232: "MSP430F1222", #or F1232 0xf169: "MSP430F16x", @@ -179,7 +186,12 @@ class GoodFETMSP430(GoodFET): def MSP430masserase(self): """Erase MSP430 flash memory.""" self.writecmd(self.MSP430APP,0xE3,0,None); - + def MSP430setPC(self, pc): + """Set the program counter.""" + self.writecmd(self.MSP430APP,0xC2,2,[pc&0xFF,(pc>>8)&0xFF]); + def MSP430run(self): + """Reset the MSP430 to run on its own.""" + self.writecmd(self.MSP430APP,0x21,0,None); def MSP430dumpbsl(self): self.MSP430dumpmem(0xC00,0xfff); def MSP430dumpallmem(self):