]> git.sur5r.net Git - openocd/commitdiff
fix error handling during halt
authorRodrigo L. Rosa <rodrigorosa.LG@gmail.com>
Tue, 30 Aug 2011 21:26:05 +0000 (14:26 -0700)
committerRodrigo L. Rosa <rodrigorosa.LG@gmail.com>
Tue, 30 Aug 2011 22:09:44 +0000 (15:09 -0700)
the user can execute halt, but no enter_debug_mode. modified the error handling to suite this.
the new implementation of unlocking will use enter_debug_mode, and should not get the same errors as the user would, because not being able to enter debug mode is actually success when checking for locked flash.

src/target/dsp5680xx.c

index 4cd3ff5b08a18378c1cb7b2d7c37595580d5f5f2..cc00f4099decec14481377a36b7b0e8aa9d8b72a 100644 (file)
@@ -475,14 +475,14 @@ static int eonce_enter_debug_mode(struct target * target, uint16_t * eonce_statu
   if((data_read_from_dr&0x30) == 0x30){
     LOG_DEBUG("EOnCE successfully entered debug mode.");
     target->state = TARGET_HALTED;
-    return ERROR_OK;
+    retval = ERROR_OK;
   }else{
+    LOG_DEBUG("Failed to set EOnCE module to debug mode.");
     retval = ERROR_TARGET_FAILURE;
-    err_check(retval,"Failed to set EOnCE module to debug mode.");
   }
   if(eonce_status!=NULL)
     *eonce_status = data_read_from_dr;
-  return ERROR_OK;
+  return retval;
 }
 
 /** 
@@ -551,7 +551,7 @@ static int dsp5680xx_halt(struct target *target){
     return ERROR_OK;
   }
   retval = eonce_enter_debug_mode(target,&eonce_status);
-  err_check_propagate(retval);
+  err_check(retval,"Failed to halt target.");
   retval = eonce_pc_store(target);
   err_check_propagate(retval);
   //TODO is it useful to store the pc?