X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Fapps%2Fjtag%2Fjtagarm7tdmi.c;h=2545c076433fe174c1f152c7e98ecd20dc092821;hp=056f42aa682798b2aa63b2a0cd7474b984dc9907;hb=a6d9532001d844db4546a99e2d9d24a396255318;hpb=09f1b2b7487f827fde818d65087bf6911fdf9556;ds=sidebyside diff --git a/firmware/apps/jtag/jtagarm7tdmi.c b/firmware/apps/jtag/jtagarm7tdmi.c index 056f42a..2545c07 100644 --- a/firmware/apps/jtag/jtagarm7tdmi.c +++ b/firmware/apps/jtag/jtagarm7tdmi.c @@ -354,6 +354,7 @@ unsigned long jtagarm7tdmi_scan_intest(int chain) { // PROVEN //! push an instruction into the pipeline - Assumes scan-chain 1 is already INTEST unsigned long jtagarm7tdmi_instr_primitive(unsigned long instr, char breakpt){ unsigned long retval; + //jtagarm7tdmi_resettap(); // FIXME: DEBUG: seems necessary for some reason. ugh. jtagarm7tdmi_scan_intest(1); SHIFT_DR; @@ -563,7 +564,6 @@ unsigned long jtagarm7tdmi_get_register(unsigned char reg) { cmddatalong[2] = jtagarm7tdmi_nop( 0); // push nop into pipeline - fetched cmddatalong[3] = jtagarm7tdmi_nop( 0); // push nop into pipeline - decoded cmddatalong[4] = jtagarm7tdmi_nop( 0); // push nop into pipeline - executed - //retval = jtagarmtransn(ARM_INSTR_NOP, 32, LSB, END, NORETIDLE); //DEBUGGING NOT FOR RESALE! retval = jtagarm7tdmi_nop( 0); // recover 32-bit word cmddatalong[5] = retval; cmddatalong[6] = jtagarm7tdmi_nop( 0); @@ -691,12 +691,12 @@ unsigned long jtagarm7tdmi_readmem(unsigned long adr){ delay(1); waitcount --; } - if (waitcount == 0xffff){ + if (waitcount == 0){ return (-1); } else { retval = jtagarm7tdmi_get_register(1); // read memory value from R1 register - jtagarm7tdmi_set_register(1, r1); // restore R0 and R1 - jtagarm7tdmi_set_register(0, r0); + jtagarm7tdmi_set_register(1, r1); // restore R0 and R1 + jtagarm7tdmi_set_register(0, r0); } return retval; }