X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Ftarget%2Farm7_9_common.c;h=51f4c682b6237343d51a789d9c15ce046a78f261;hb=3a3fc300141d9e0e6b71729d7fd604aa28447116;hp=3a0eb7b0865a375e373721ddce5c27f6a907c75e;hpb=2ab05303016eb5a137ad247550dd3fd1c9ec0274;p=fw%2Fopenocd diff --git a/src/target/arm7_9_common.c b/src/target/arm7_9_common.c index 3a0eb7b08..51f4c682b 100644 --- a/src/target/arm7_9_common.c +++ b/src/target/arm7_9_common.c @@ -676,7 +676,7 @@ int arm7_9_handle_target_request(void *priv) return ERROR_OK; } -enum target_state arm7_9_poll(target_t *target) +int arm7_9_poll(target_t *target) { int retval; armv4_5_common_t *armv4_5 = target->arch_info; @@ -692,24 +692,16 @@ enum target_state arm7_9_poll(target_t *target) embeddedice_read_reg(dbg_stat); if ((retval = jtag_execute_queue()) != ERROR_OK) { - switch (retval) - { - case ERROR_JTAG_QUEUE_FAILED: - ERROR("JTAG queue failed while reading EmbeddedICE status register"); - exit(-1); - break; - default: - break; - } + return retval; } if (buf_get_u32(dbg_stat->value, EICE_DBG_STATUS_DBGACK, 1)) { DEBUG("DBGACK set, dbg_state->value: 0x%x", buf_get_u32(dbg_stat->value, 0, 32)); - if ((target->state == TARGET_UNKNOWN)) + if (target->state == TARGET_UNKNOWN) { - WARNING("DBGACK set while target was in unknown state. Reset or initialize target before resuming"); target->state = TARGET_RUNNING; + WARNING("DBGACK set while target was in unknown state. Reset or initialize target."); } if ((target->state == TARGET_RUNNING) || (target->state == TARGET_RESET)) { @@ -727,6 +719,10 @@ enum target_state arm7_9_poll(target_t *target) target_call_event_callbacks(target, TARGET_EVENT_DEBUG_HALTED); } + if (target->state != TARGET_HALTED) + { + WARNING("DBGACK set, but the target did not end up in the halted stated %d", target->state); + } } else { @@ -734,7 +730,7 @@ enum target_state arm7_9_poll(target_t *target) target->state = TARGET_RUNNING; } - return target->state; + return ERROR_OK; } int arm7_9_assert_reset(target_t *target) @@ -1307,7 +1303,6 @@ int arm7_9_restore_context(target_t *target) else { ERROR("BUG: dirty register '%s', but no valid data", reg->name); - exit(-1); } } }