X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2FGoodFETMSP430.py;h=884a47a1ea6512f88ba95f448660233e73b16d5d;hp=0e1f18f4d2888745f3fd0c0631b05289ef6ce650;hb=27317fc9af778f929496abb25ddb1ac68b1beb4e;hpb=321da65698145ce767c963c89a3f287bc3cff041 diff --git a/client/GoodFETMSP430.py b/client/GoodFETMSP430.py index 0e1f18f..884a47a 100644 --- a/client/GoodFETMSP430.py +++ b/client/GoodFETMSP430.py @@ -58,6 +58,14 @@ class GoodFETMSP430(GoodFET): val&0xff, (val&0xff00)>>8]; self.writecmd(self.MSP430APP,0x03,6,self.data); return ord(self.data[0])+(ord(self.data[1])<<8); + def MSP430pokeflash(self,adr,val): + """Write the contents of flash memory at an address.""" + self.data=[adr&0xff, (adr&0xff00)>>8, + (adr&0xff0000)>>16,(adr&0xff000000)>>24, + val&0xff, (val&0xff00)>>8]; + self.writecmd(self.MSP430APP,0xE1,6,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); @@ -99,6 +107,34 @@ class GoodFETMSP430(GoodFET): #ident=0x0091; return ident; + def MSP430identstr(self): + """Grab model string.""" + return self.MSP430devices.get(self.MSP430ident()); + MSP430devices={ + #MSP430F2xx + 0xf227: "MSP430F22xx", + 0xf213: "MSP430F21x1", + 0xf249: "MSP430F24x", + 0xf26f: "MSP430F261x", + + #MSP430F1xx + 0xf16c: "MSP430F161x", + 0xf149: "MSP430F13x", #or f14x(1) + 0xf112: "MSP430F11x", #or f11x1 + 0xf143: "MSP430F14x", + 0xf112: "MSP430F11x", #or F11x1A + 0xf123: "MSP430F1xx", #or F123x + 0x1132: "MSP430F1122", #or F1132 + 0x1232: "MSP430F1222", #or F1232 + 0xf169: "MSP430F16x", + + #MSP430F4xx + 0xF449: "MSP430F43x", #or F44x + 0xF427: "MSP430FE42x", #or FW42x, F415, F417 + 0xF439: "MSP430FG43x", + 0xf46f: "MSP430FG46xx", #or F471xx + + } def MSP430test(self): """Test MSP430 JTAG. Requires that a chip be attached.""" if self.MSP430ident()==0xffff: