Skip to content

Commit

Permalink
target/cortex_m: remove dependency from jtag queue
Browse files Browse the repository at this point in the history
Since the first commit 0988319 that introduced cortex_m, the
code has a delay of 50ms after srst has been asserted.
The specific delay is implemented through the JTAG_SLEEP command
sent in the jtag queue.

To remove the dependency from the jtag queue, replace the delay
with a transport independent function.

In case of jtag transport, this change keeps the same behaviour
only if the jtag queue has been flushed before the delay. This
does not happen if the call to dap_dp_init(), few lines above,
fails while calling a dap_queue_dp_{read,write}(); in this case
the jtag queue will be flushed later, after the delay, while in
the original code the delay would follow the flushing of the
commands already queued. Anyway, this different behavior would
only happen in case of DAP already not responsive so anticipating
the delay in such error condition is not supposed to add further
problems.

Change-Id: If15978246764e4266b10e707d86c03e5ed907de7
Signed-off-by: Antonio Borneo <[email protected]>
Reviewed-on: http:https://openocd.zylin.com/4912
Tested-by: jenkins
Reviewed-by: Tomas Vanek <[email protected]>
  • Loading branch information
borneoa authored and tom-van committed Jun 6, 2019
1 parent e5177a5 commit 02cd1e3
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/target/cortex_m.c
Original file line number Diff line number Diff line change
Expand Up @@ -1198,7 +1198,7 @@ static int cortex_m_assert_reset(struct target *target)
}

target->state = TARGET_RESET;
jtag_add_sleep(50000);
jtag_sleep(50000);

register_cache_invalidate(cortex_m->armv7m.arm.core_cache);

Expand Down

0 comments on commit 02cd1e3

Please sign in to comment.