From: travisutk Date: Sun, 21 Jun 2009 21:20:42 +0000 (+0000) Subject: Client now runs at 115200 baud. X-Git-Url: http://git.rot13.org/?p=goodfet;a=commitdiff_plain;h=81b8a55948335302b9691eff6b71ef17d61c61d5;hp=1aee2758590886e1d1018c840806195a71e12204 Client now runs at 115200 baud. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@48 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- diff --git a/client/GoodFET.py b/client/GoodFET.py index a4d07c2..94737ba 100755 --- a/client/GoodFET.py +++ b/client/GoodFET.py @@ -20,7 +20,8 @@ class GoodFET: """Open the serial port""" self.serialport = serial.Serial( port, - 9600, + #9600, + 115200, parity = serial.PARITY_NONE ) #Drop DTR, which is !RST, low to begin the app. @@ -29,7 +30,7 @@ class GoodFET: self.serialport.flushOutput() #Read and handle the initial command. - time.sleep(1); + #time.sleep(1); self.readcmd(); #Read the first command. if(self.verb!=0x7F): print "Verb is wrong. Incorrect firmware?"; @@ -71,14 +72,19 @@ class GoodFET: def setBaud(self,baud): rates=[9600, 9600, 19200, 38400]; self.data=[baud]; - print "Changing baud." + print "Changing FET baud." self.serialport.write(chr(0x00)); self.serialport.write(chr(0x80)); self.serialport.write(chr(1)); self.serialport.write(chr(baud)); - print "Changed baud." + print "Changed host baud." self.serialport.setBaudrate(rates[baud]); + time.sleep(1); + self.serialport.flushInput() + self.serialport.flushOutput() + + print "Baud is now %i." % rates[baud]; return; def monitortest(self): """Self-test several functions through the monitor.""" @@ -169,22 +175,24 @@ class GoodFET: def MSP430flashtest(self): self.MSP430masserase(); i=0x2500; - while(i<0x2600): + while(i<0xFFFF): if(self.MSP430peek(i)!=0xFFFF): print "ERROR: Unerased flash at %04x."%i; - self.MSP430writeflash(i,0x0000); + self.MSP430writeflash(i,0xDEAD); i+=2; def MSP430masserase(self): """Erase MSP430 flash memory.""" self.writecmd(0x11,0xE3,0,None); def MSP430writeflash(self,adr,val): """Write a word of flash memory.""" + if(self.MSP430peek(adr)!=0xFFFF): + print "FLASH ERROR: %04x not clear." % adr; data=[adr&0xFF,(adr&0xFF00)>>8,val&0xFF,(val&0xFF00)>>8]; self.writecmd(0x11,0xE1,4,data); rval=ord(self.data[0])+(ord(self.data[1])<<8); if(val!=rval): print "FLASH WRITE ERROR AT %04x. Found %04x, wrote %04x." % (adr,rval,val); - sys.exit(1); + def MSP430dumpbsl(self): self.MSP430dumpmem(0xC00,0xfff); def MSP430dumpallmem(self): diff --git a/client/goodfet.msp430 b/client/goodfet.msp430 index 2286695..7e5c065 100755 --- a/client/goodfet.msp430 +++ b/client/goodfet.msp430 @@ -20,13 +20,17 @@ if(len(sys.argv)==1): #Initailize FET and set baud rate client=GoodFET(); client.serInit("/dev/ttyUSB0") -#client.setBaud(1); + + #Connect to target client.MSP430setup(); client.MSP430start(); +#client.setBaud(2); +if(sys.argv[1]=="monitortest"): + client.monitortest(); if(sys.argv[1]=="test"): client.MSP430test(); if(sys.argv[1]=="dump"): @@ -62,7 +66,6 @@ if(sys.argv[1]=="flash"): h = IntelHex16bit(f); - client.MSP430masserase(); for i in h._buf.keys(): #print "%04x: %04x"%(i,h[i>>1]);