X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Fapps%2Fjtag%2Fjtag430x2.c;h=bdba2cbea33e3479e47c0df1d524a0efd964d53c;hp=5bc75cdd0292faa7e0d7188dbe6d706f47cfc0ac;hb=7d3404539568650baef6a21c85580ea8e3e097aa;hpb=1706a7f4cfa73ed716b56f5b0322bfb67b560ade diff --git a/firmware/apps/jtag/jtag430x2.c b/firmware/apps/jtag/jtag430x2.c index 5bc75cd..bdba2cb 100644 --- a/firmware/apps/jtag/jtag430x2.c +++ b/firmware/apps/jtag/jtag430x2.c @@ -27,12 +27,12 @@ unsigned char jtag430x2_start(){ //Entry sequence from Page 67 of SLAU265A for 4-wire MSP430 JTAG CLRRST; - delay(10);//10 + delay(20);//10 CLRTST; - delay(5);//5 + delay(10);//5 SETTST; - msdelay(5);//5 + msdelay(10);//5 SETRST; P5DIR&=~RST; @@ -186,7 +186,7 @@ unsigned int jtag430x2_fusecheck(){ //! Handles MSP430X2 JTAG commands. Forwards others to JTAG. void jtag430x2handle(unsigned char app, unsigned char verb, - unsigned char len){ + unsigned long len){ register char blocks; unsigned int i,val; @@ -210,6 +210,13 @@ void jtag430x2handle(unsigned char app, if(jtagid==MSP430JTAGID){ jtag430mode=MSP430MODE; drwidth=16; + + //Perform a reset and disable watchdog. + jtag430_por(); + jtag430_writemem(0x120,0x5a80);//disable watchdog + + jtag430_haltcpu(); + jtag430_resettap(); txdata(app,verb,1); return; @@ -235,9 +242,7 @@ void jtag430x2handle(unsigned char app, at=cmddatalong[0]; len=0x80; - serial_tx(app); - serial_tx(verb); - serial_tx(len); + txhead(app,verb,len); while(blocks--){ for(i=0;i