Add jtag_queue_command() by Michael Bruck <mbruck@digenius.de> [8/8]
git-svn-id: svn://svn.berlios.de/openocd/trunk@1822 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
f9d861d357
commit
204a360602
|
@ -695,9 +695,8 @@ static int svf_execute_tap(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// not good to use this
|
// not good to use this
|
||||||
extern jtag_command_t** jtag_get_last_command_p(void);
|
|
||||||
extern void* cmd_queue_alloc(size_t size);
|
extern void* cmd_queue_alloc(size_t size);
|
||||||
extern jtag_command_t **last_comand_pointer;
|
extern void jtag_queue_command(jtag_command_t * cmd);
|
||||||
|
|
||||||
static int svf_run_command(struct command_context_s *cmd_ctx, char *cmd_str)
|
static int svf_run_command(struct command_context_s *cmd_ctx, char *cmd_str)
|
||||||
{
|
{
|
||||||
|
@ -707,9 +706,6 @@ static int svf_run_command(struct command_context_s *cmd_ctx, char *cmd_str)
|
||||||
// tmp variable
|
// tmp variable
|
||||||
int i_tmp;
|
int i_tmp;
|
||||||
|
|
||||||
// not good to use this
|
|
||||||
jtag_command_t **last_cmd;
|
|
||||||
|
|
||||||
// for RUNTEST
|
// for RUNTEST
|
||||||
int run_count;
|
int run_count;
|
||||||
float min_time, max_time;
|
float min_time, max_time;
|
||||||
|
@ -1180,15 +1176,15 @@ static int svf_run_command(struct command_context_s *cmd_ctx, char *cmd_str)
|
||||||
// enter into run_state if necessary
|
// enter into run_state if necessary
|
||||||
if (last_state != svf_para.runtest_run_state)
|
if (last_state != svf_para.runtest_run_state)
|
||||||
{
|
{
|
||||||
last_cmd = jtag_get_last_command_p();
|
jtag_command_t * cmd = cmd_queue_alloc(sizeof(jtag_command_t));
|
||||||
*last_cmd = cmd_queue_alloc(sizeof(jtag_command_t));
|
|
||||||
last_comand_pointer = &((*last_cmd)->next);
|
|
||||||
(*last_cmd)->next = NULL;
|
|
||||||
(*last_cmd)->type = JTAG_STATEMOVE;
|
|
||||||
(*last_cmd)->cmd.statemove = cmd_queue_alloc(sizeof(statemove_command_t));
|
|
||||||
(*last_cmd)->cmd.statemove->end_state = svf_para.runtest_run_state;
|
|
||||||
|
|
||||||
cmd_queue_end_state = cmd_queue_cur_state = (*last_cmd)->cmd.statemove->end_state;
|
jtag_queue_command(cmd);
|
||||||
|
|
||||||
|
cmd->type = JTAG_STATEMOVE;
|
||||||
|
cmd->cmd.statemove = cmd_queue_alloc(sizeof(statemove_command_t));
|
||||||
|
cmd->cmd.statemove->end_state = svf_para.runtest_run_state;
|
||||||
|
|
||||||
|
cmd_queue_end_state = cmd_queue_cur_state = cmd->cmd.statemove->end_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
// call jtag_add_clocks
|
// call jtag_add_clocks
|
||||||
|
@ -1197,15 +1193,14 @@ static int svf_run_command(struct command_context_s *cmd_ctx, char *cmd_str)
|
||||||
if (svf_para.runtest_end_state != svf_para.runtest_run_state)
|
if (svf_para.runtest_end_state != svf_para.runtest_run_state)
|
||||||
{
|
{
|
||||||
// move to end_state
|
// move to end_state
|
||||||
last_cmd = jtag_get_last_command_p();
|
jtag_command_t * cmd = cmd_queue_alloc(sizeof(jtag_command_t));
|
||||||
*last_cmd = cmd_queue_alloc(sizeof(jtag_command_t));
|
|
||||||
last_comand_pointer = &((*last_cmd)->next);
|
|
||||||
(*last_cmd)->next = NULL;
|
|
||||||
(*last_cmd)->type = JTAG_STATEMOVE;
|
|
||||||
(*last_cmd)->cmd.statemove = cmd_queue_alloc(sizeof(statemove_command_t));
|
|
||||||
(*last_cmd)->cmd.statemove->end_state = svf_para.runtest_end_state;
|
|
||||||
|
|
||||||
cmd_queue_end_state = cmd_queue_cur_state = (*last_cmd)->cmd.statemove->end_state;
|
jtag_queue_command(cmd);
|
||||||
|
cmd->type = JTAG_STATEMOVE;
|
||||||
|
cmd->cmd.statemove = cmd_queue_alloc(sizeof(statemove_command_t));
|
||||||
|
cmd->cmd.statemove->end_state = svf_para.runtest_end_state;
|
||||||
|
|
||||||
|
cmd_queue_end_state = cmd_queue_cur_state = cmd->cmd.statemove->end_state;
|
||||||
}
|
}
|
||||||
last_state = svf_para.runtest_end_state;
|
last_state = svf_para.runtest_end_state;
|
||||||
#else
|
#else
|
||||||
|
@ -1294,15 +1289,15 @@ static int svf_run_command(struct command_context_s *cmd_ctx, char *cmd_str)
|
||||||
if (svf_tap_state_is_stable(state))
|
if (svf_tap_state_is_stable(state))
|
||||||
{
|
{
|
||||||
// TODO: move to state
|
// TODO: move to state
|
||||||
last_cmd = jtag_get_last_command_p();
|
jtag_command_t * cmd = cmd_queue_alloc(sizeof(jtag_command_t));
|
||||||
*last_cmd = cmd_queue_alloc(sizeof(jtag_command_t));
|
|
||||||
last_comand_pointer = &((*last_cmd)->next);
|
|
||||||
(*last_cmd)->next = NULL;
|
|
||||||
(*last_cmd)->type = JTAG_STATEMOVE;
|
|
||||||
(*last_cmd)->cmd.statemove = cmd_queue_alloc(sizeof(statemove_command_t));
|
|
||||||
(*last_cmd)->cmd.statemove->end_state = state;
|
|
||||||
|
|
||||||
cmd_queue_end_state = cmd_queue_cur_state = (*last_cmd)->cmd.statemove->end_state;
|
jtag_queue_command(cmd);
|
||||||
|
|
||||||
|
cmd->type = JTAG_STATEMOVE;
|
||||||
|
cmd->cmd.statemove = cmd_queue_alloc(sizeof(statemove_command_t));
|
||||||
|
cmd->cmd.statemove->end_state = state;
|
||||||
|
|
||||||
|
cmd_queue_end_state = cmd_queue_cur_state = cmd->cmd.statemove->end_state;
|
||||||
last_state = state;
|
last_state = state;
|
||||||
|
|
||||||
LOG_DEBUG("\tmove to %s by state_move", svf_tap_state_name[state]);
|
LOG_DEBUG("\tmove to %s by state_move", svf_tap_state_name[state]);
|
||||||
|
|
Loading…
Reference in New Issue