target/cortex_m: try to re-examine under reset in cortex_m_assert_reset()
An application often idling in real sleep mode may make a Cortex-M target hard to access as CPU clock are gated and debug requests are responded by WAIT ack. Try to examine the target under reset as the last resort. Change-Id: Ife875a966a838c37dde987bc584ad0a1f4d020d6 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/7228 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
parent
b991c416b7
commit
f65d1da013
|
@ -1437,6 +1437,14 @@ static int cortex_m_assert_reset(struct target *target)
|
|||
srst_asserted = true;
|
||||
}
|
||||
|
||||
/* TODO: replace the hack calling target_examine_one()
|
||||
* as soon as a better reset framework is available */
|
||||
if (!target_was_examined(target) && !target->defer_examine
|
||||
&& srst_asserted && (jtag_reset_config & RESET_SRST_NO_GATING)) {
|
||||
LOG_TARGET_DEBUG(target, "Trying to re-examine under reset");
|
||||
target_examine_one(target);
|
||||
}
|
||||
|
||||
/* We need at least debug_ap to go further.
|
||||
* Inform user and bail out if we don't have one. */
|
||||
if (!armv7m->debug_ap) {
|
||||
|
@ -1578,7 +1586,7 @@ static int cortex_m_deassert_reset(struct target *target)
|
|||
enum reset_types jtag_reset_config = jtag_get_reset_config();
|
||||
|
||||
if ((jtag_reset_config & RESET_HAS_SRST) &&
|
||||
!(jtag_reset_config & RESET_SRST_NO_GATING) &&
|
||||
!(jtag_reset_config & RESET_SRST_NO_GATING) &&
|
||||
armv7m->debug_ap) {
|
||||
|
||||
int retval = dap_dp_init_or_reconnect(armv7m->debug_ap->dap);
|
||||
|
|
Loading…
Reference in New Issue