cmddataword[0]=jtag430_readmem(cmddataword[0]);
txdata(app,verb,2);
break;
+ /*
case JTAG430_WRITEFLASH:
+
//debugstr("Poking flash memory.");
jtag430_writeflash(cmddataword[0],cmddataword[2]);
//Try again if failure.
- if(cmddataword[0]!=jtag430_readmem(cmddataword[0]))
- jtag430_writeflash(cmddataword[0],cmddataword[2]);
+ //if(cmddataword[2]!=jtag430_readmem(cmddataword[0]))
+ // jtag430_writeflash(cmddataword[0],cmddataword[2]);
//Return result.
cmddataword[0]=jtag430_readmem(cmddataword[0]);
+ txdata(app,verb,2);
+ break; */
+ case JTAG430_WRITEFLASH:
+ at=cmddataword[0];
+
+ for(i=2;i<(len>>1);i++){
+ //debugstr("Poking flash memory.");
+ jtag430_writeflash(at,cmddataword[i]);
+ if(cmddataword[i]!=jtag430_readmem(at))
+ jtag430_writeflash(at,cmddataword[i]);
+ }
+
+ //Return result of first write as a word.
+ cmddataword[0]=jtag430_readmem(cmddataword[0]);
+
txdata(app,verb,2);
break;
case JTAG430_ERASEFLASH:
//Use P3 instead of P5 for target I/O on chips without P5.
#ifndef __MSP430_HAS_PORT5__
#ifndef __MSP430_HAS_PORT5_R__
-#warning "No P5, using P3 instead. Will break 2618 and 1612 support."
+//#warning "No P5, using P3 instead. Will break 2618 and 1612 support."
#define P5OUT P3OUT
#define P5DIR P3DIR
#define P5REN P3REN
//Use false P5REN for 1612.
#ifdef __MSP430_HAS_PORT5__
#ifndef __MSP430_HAS_PORT5_R__
-#warning "1xx, using fake P5REN for external pulling resistors."
+//#warning "1xx, using fake P5REN for external pulling resistors."
#define P5REN P5OUT
#endif
#endif