Repair of 16-bit MSP430 JTAG nearly complete, dump works well.
authortravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Sat, 3 Oct 2009 08:42:26 +0000 (08:42 +0000)
committertravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Sat, 3 Oct 2009 08:42:26 +0000 (08:42 +0000)
git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@165 12e2690d-a6be-4b82-a7b7-67c4a43b65c8

client/GoodFET.py
firmware/apps/jtag/jtag430.c
firmware/apps/jtag/jtag430x2.c

index 43c0ca6..af24201 100755 (executable)
@@ -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."""
index cf5179d..9260b0c 100644 (file)
@@ -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<len;i+=2){
+       jtag430_resettap();
+       delay(10);
+       
+       val=jtag430_readmem(at);
+               
+       at+=2;
+       serial_tx(val&0xFF);
+       serial_tx((val&0xFF00)>>8);
+      }
+    }
+    
+    
+    
     break;
   case JTAG430_WRITEMEM:
   case POKE:
index 1a19019..5bc75cd 100644 (file)
@@ -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);