summaryrefslogtreecommitdiff
path: root/src/target
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-31 15:52:01 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-31 15:52:01 +0000
commit75ba7397b23ceb162f450fa903d372b42492a8cc (patch)
tree7a5cc411ea1fd05de7cf16e0b23d842f4eef0153 /src/target
parent5021560ca0e8169713a3a9a5906dab4aa188ea73 (diff)
downloadopenocd+libswd-75ba7397b23ceb162f450fa903d372b42492a8cc.tar.gz
openocd+libswd-75ba7397b23ceb162f450fa903d372b42492a8cc.tar.bz2
openocd+libswd-75ba7397b23ceb162f450fa903d372b42492a8cc.tar.xz
openocd+libswd-75ba7397b23ceb162f450fa903d372b42492a8cc.zip
wait up to 1 second for halted state upon reset init/halt.
git-svn-id: svn://svn.berlios.de/openocd/trunk@884 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/target')
-rw-r--r--src/target/target.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/target/target.c b/src/target/target.c
index c2fce59d..02016e77 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -335,11 +335,15 @@ int target_process_reset(struct command_context_s *cmd_ctx, enum target_reset_mo
{
target->type->deassert_reset(target);
/* We can fail to bring the target into the halted state */
- target_poll(target);
- if (target->reset_halt&&((target->state != TARGET_HALTED)))
+ if (target->reset_halt)
{
- LOG_WARNING("Failed to reset target into halted mode - issuing halt");
- target->type->halt(target);
+ /* wait up to 1 second for halt. */
+ target_wait_state(target, TARGET_HALTED, 1000);
+ if (target->state != TARGET_HALTED)
+ {
+ LOG_WARNING("Failed to reset target into halted mode - issuing halt");
+ target->type->halt(target);
+ }
}
target = target->next;