Magnus Lundin Thc cortex_m3_poll function does not identify that a target is running unless we transition from RESET.
This patch correctly identifies a running target. Patch made a tad more palatable by David Brownell <david-b@pacbell.net> git-svn-id: svn://svn.berlios.de/openocd/trunk@2510 b42882b7-edfa-0310-969c-e2dbd0fdcd60__archive__
parent
14ed84fdbe
commit
5198968116
|
@ -512,16 +512,19 @@ int cortex_m3_poll(target_t *target)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/* REVISIT when S_SLEEP is set, it's in a Sleep or DeepSleep state.
|
||||||
if (cortex_m3->dcb_dhcsr & S_SLEEP)
|
* How best to model low power modes?
|
||||||
target->state = TARGET_SLEEP;
|
*/
|
||||||
*/
|
|
||||||
|
|
||||||
#if 0
|
if (target->state == TARGET_UNKNOWN)
|
||||||
/* Read Debug Fault Status Register, added to figure out the lockup when running flashtest.script */
|
{
|
||||||
mem_ap_read_atomic_u32(swjdp, NVIC_DFSR, &cortex_m3->nvic_dfsr);
|
/* check if processor is retiring instructions */
|
||||||
LOG_DEBUG("dcb_dhcsr 0x%x, nvic_dfsr 0x%x, target->state: %s", cortex_m3->dcb_dhcsr, cortex_m3->nvic_dfsr, target_state_name(target));
|
if (cortex_m3->dcb_dhcsr & S_RETIRE_ST)
|
||||||
#endif
|
{
|
||||||
|
target->state = TARGET_RUNNING;
|
||||||
|
return ERROR_OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue