-unsigned long jtagarm7tdmi_set_register(unsigned char reg, unsigned long val) {
- unsigned long retval = 0, instr;
- instr = ARM_WRITE_REG | (reg<<12); // push LDR Rx, [R14] into pipeline
-
- debughex32(jtagarm7tdmi_nop( 0)); // push nop into pipeline - clean out the pipeline...
- debughex32(jtagarm7tdmi_instr_primitive(instr, 0)); // push nop into pipeline - fetch
- debughex32(jtagarm7tdmi_nop( 0)); // push nop into pipeline - decode
- debughex32(jtagarm7tdmi_nop( 0)); // push nop into pipeline - execute
+void jtagarm7tdmi_set_register(unsigned long reg, unsigned long val) {
+ unsigned long instr, reg2;
+ reg2 = (reg&0xf);
+ instr = (unsigned long)(((unsigned long)reg<<12) | ARM_WRITE_REG); // LDR Rx, [R14]
+ instr |= (unsigned long)((unsigned long)reg2<<8)<<8;
+ //instr |= (unsigned long)((((unsigned long)reg)&0x7)<<8)<<8;
+ //debugstr("Writing:");
+ debughex32(instr);
+ //debughex32(val);
+ jtagarm7tdmi_nop( 0); // push nop into pipeline - clean out the pipeline...
+ jtagarm7tdmi_nop( 0); // push nop into pipeline - clean out the pipeline...
+ jtagarm7tdmi_instr_primitive(instr, 0); // push instr into pipeline - fetch
+ jtagarm7tdmi_nop( 0); // push nop into pipeline - decode
+ //jtagarm7tdmi_nop( 0); // push nop into pipeline - execute