X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=firmware%2Fapps%2Fjtag%2Fjtag430x2.c;h=5bc75cdd0292faa7e0d7188dbe6d706f47cfc0ac;hb=1706a7f4cfa73ed716b56f5b0322bfb67b560ade;hp=d0f5709348f497d69af6a90803cfdb843b94bb4d;hpb=d39e9b08dc3f689a6b6a53f73c0943385e053542;p=goodfet diff --git a/firmware/apps/jtag/jtag430x2.c b/firmware/apps/jtag/jtag430x2.c index d0f5709..5bc75cd 100644 --- a/firmware/apps/jtag/jtag430x2.c +++ b/firmware/apps/jtag/jtag430x2.c @@ -1,10 +1,6 @@ /*! \file jtag430x2.c \author Travis Goodspeed - - This is an implementation of the MSP430X2 JTAG protocol - for the GoodFET project at http://goodfet.sf.net/ - - See the license file for details of proper use. + \brief MSP430X2 JTAG (20-bit) */ #include "platform.h" @@ -31,12 +27,12 @@ unsigned char jtag430x2_start(){ //Entry sequence from Page 67 of SLAU265A for 4-wire MSP430 JTAG CLRRST; - delay(10); + delay(10);//10 CLRTST; - delay(5); + delay(5);//5 SETTST; - msdelay(5); + msdelay(5);//5 SETRST; P5DIR&=~RST; @@ -94,7 +90,7 @@ void jtag430x2_writemem(unsigned long adr, //! Read data from address unsigned int jtag430x2_readmem(unsigned long adr){ unsigned int toret=0; - unsigned int tries=5; + //unsigned int tries=5; while(1){ do{ @@ -198,6 +194,11 @@ void jtag430x2handle(unsigned char app, //jtag430_resettap(); + if(verb!=START && jtag430mode==MSP430MODE){ + jtag430handle(app,verb,len); + return; + } + switch(verb){ case START: //Enter JTAG mode. @@ -209,6 +210,9 @@ void jtag430x2handle(unsigned char app, if(jtagid==MSP430JTAGID){ jtag430mode=MSP430MODE; drwidth=16; + jtag430_resettap(); + txdata(app,verb,1); + return; }else if(jtagid==MSP430X2JTAGID){ jtag430mode=MSP430X2MODE; drwidth=20; @@ -230,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);