jtaglib cpu16: single step issue fixed

This commit is contained in:
Triss 2022-07-24 21:46:48 +02:00
parent aed67748b1
commit 98c434555f
1 changed files with 4 additions and 3 deletions

View File

@ -3,9 +3,6 @@
#include "jtaglib_defs.h" #include "jtaglib_defs.h"
#include "output.h" #include "output.h"
// FIXME:
// * stepping works only once. or maybe sometimes never.
/* Set target CPU JTAG state machine into the instruction fetch state /* Set target CPU JTAG state machine into the instruction fetch state
* return: 1 - instruction fetch was set * return: 1 - instruction fetch was set
* 0 - otherwise * 0 - otherwise
@ -693,6 +690,8 @@ static void jlf16_single_step( struct jtdev *p )
{ // libmsp430 BIOS name: SingleStep { // libmsp430 BIOS name: SingleStep
unsigned int loop_counter; unsigned int loop_counter;
jlf16_set_instruction_fetch(p);
/* CPU controls RW & BYTE */ /* CPU controls RW & BYTE */
jtag_ir_shift(p, IR_CNTRL_SIG_16BIT); jtag_ir_shift(p, IR_CNTRL_SIG_16BIT);
jtag_dr_shift_16(p, 0x3401); jtag_dr_shift_16(p, 0x3401);
@ -713,6 +712,8 @@ static void jlf16_single_step( struct jtdev *p )
jtag_ir_shift(p, IR_CNTRL_SIG_16BIT); jtag_ir_shift(p, IR_CNTRL_SIG_16BIT);
jtag_dr_shift_16(p, 0x2401); jtag_dr_shift_16(p, 0x2401);
jlf16_set_instruction_fetch(p);
if (loop_counter == 0) { if (loop_counter == 0) {
/* timeout reached */ /* timeout reached */
printc_err("jtaglib_cpu16: single step failed\n"); printc_err("jtaglib_cpu16: single step failed\n");