From 1706a7f4cfa73ed716b56f5b0322bfb67b560ade Mon Sep 17 00:00:00 2001 From: travisutk Date: Sat, 3 Oct 2009 08:42:26 +0000 Subject: [PATCH] Repair of 16-bit MSP430 JTAG nearly complete, dump works well. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@165 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- client/GoodFET.py | 2 +- firmware/apps/jtag/jtag430.c | 28 ++++++++++++++++++++++++++++ firmware/apps/jtag/jtag430x2.c | 6 ------ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/client/GoodFET.py b/client/GoodFET.py index 43c0ca6..af24201 100755 --- a/client/GoodFET.py +++ b/client/GoodFET.py @@ -48,7 +48,7 @@ class GoodFET: print "Verb %02x is wrong. Incorrect firmware?" % self.verb; #print "Connected." def getbuffer(self,size=0x1c00): - writecmd(0,0xC2,[size&0xFF,(size>>16)&&0xFF]); + writecmd(0,0xC2,[size&0xFF,(size>>16)&0xFF]); print "Got %02x%02x buffer size." % (self.data[1],self.data[0]); def writecmd(self, app, verb, count=0, data=[], blocks=1): """Write a command and some data to the GoodFET.""" diff --git a/firmware/apps/jtag/jtag430.c b/firmware/apps/jtag/jtag430.c index cf5179d..9260b0c 100644 --- a/firmware/apps/jtag/jtag430.c +++ b/firmware/apps/jtag/jtag430.c @@ -271,6 +271,9 @@ void jtag430_setinstrfetch(){ void oldjtag430handle(unsigned char app, unsigned char verb, unsigned char len){ + register char blocks; + unsigned long at; + unsigned int i, val; switch(verb){ case START: @@ -296,8 +299,33 @@ void oldjtag430handle(unsigned char app, case JTAG430_READMEM: case PEEK: + /* cmddataword[0]=jtag430_readmem(cmddataword[0]); txdata(app,verb,2); + */ + blocks=(len>4?cmddata[4]:1); + at=cmddatalong[0]; + + len=0x80; + serial_tx(app); + serial_tx(verb); + serial_tx(len); + + while(blocks--){ + for(i=0;i>8); + } + } + + + break; case JTAG430_WRITEMEM: case POKE: diff --git a/firmware/apps/jtag/jtag430x2.c b/firmware/apps/jtag/jtag430x2.c index 1a19019..5bc75cd 100644 --- a/firmware/apps/jtag/jtag430x2.c +++ b/firmware/apps/jtag/jtag430x2.c @@ -234,12 +234,6 @@ void jtag430x2handle(unsigned char app, blocks=(len>4?cmddata[4]:1); at=cmddatalong[0]; - /* - cmddataword[0]=jtag430x2_readmem(at); - txdata(app,verb,2); - break; - */ - len=0x80; serial_tx(app); serial_tx(verb); -- 2.20.1