X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Fapps%2Fjtag%2Fjtag430x2.c;h=d671da4635d9202442ca1724baa9b42d037dbb0e;hp=685484e4515655c7230e9f0d6e066c28f41974a5;hb=f62599f649eb7fbd7f14d7469953ebbfd182f706;hpb=236b90b4447c8c17b0f351c22b4c2635c8e376d7 diff --git a/firmware/apps/jtag/jtag430x2.c b/firmware/apps/jtag/jtag430x2.c index 685484e..d671da4 100644 --- a/firmware/apps/jtag/jtag430x2.c +++ b/firmware/apps/jtag/jtag430x2.c @@ -9,25 +9,24 @@ #include "jtag430x2.h" void jtag430x2_handle_fn( uint8_t const app, - uint8_t const verb, - uint32_t const len); + uint8_t const verb, + uint32_t const len); // define the jtag430x2 app's app_t app_t const jtag430x2_app = { - - /* app number */ - JTAG430X2, - - /* handle fn */ - jtag430x2_handle_fn, - - /* name */ - "JTAG430X2", - - /* desc */ - "\tThe JTAG430X2 app extends the basic JTAG app with support\n" - "\tfor 20-bit MSP430 devices.\n" + /* app number */ + JTAG430X2, + + /* handle fn */ + jtag430x2_handle_fn, + + /* name */ + "JTAG430X2", + + /* desc */ + "\tThe JTAG430X2 app extends the basic JTAG app with support\n" + "\tfor 20-bit MSP430X2 devices, such as the MSP430F5xx Family.\n" }; @@ -220,23 +219,28 @@ void jtag430x2_handle_fn( uint8_t const app, break; case JTAG430_READMEM: case PEEK: - blocks=(len>4?cmddata[4]:1); at=cmddatalong[0]; - l=0x80; - txhead(app,verb,l); + //Fetch large blocks for bulk fetches, + //small blocks for individual peeks. + if(len>5) + l=(cmddataword[2]);//always even. + else + l=2; + l&=~1;//clear lsbit - while(blocks--){ - for(i=0;i>8); - } + if(l<2) l=2; + + txhead(app,verb,l); + for(i=0;i>8); } break; @@ -258,7 +262,11 @@ void jtag430x2_handle_fn( uint8_t const app, break; //unimplemented functions - case JTAG430_HALTCPU: + case JTAG430_HALTCPU: + //jtag430x2_haltcpu(); + debugstr("Warning, not trying to halt for lack of code."); + txdata(app,verb,0); + break; case JTAG430_RELEASECPU: case JTAG430_SETINSTRFETCH: