TRST is asserted *before* target->type->assert_reset() is invoked. Removed old code.
[fw/openocd] / src / target / target_request.c
index 9dc58607986744b6c3e5d45553130ef68e1a48dd..3487f160285a0e16d11ab8e3563940fd272a5e11 100644 (file)
@@ -42,7 +42,7 @@ int target_asciimsg(target_t *target, u32 length)
        target->type->target_request_data(target, CEIL(length, 4), (u8*)msg);
        msg[length] = 0;
        
-       DEBUG("%s", msg);
+       LOG_DEBUG("%s", msg);
        
        while (c)
        {
@@ -53,6 +53,13 @@ int target_asciimsg(target_t *target, u32 length)
        return ERROR_OK;
 }
 
+int target_charmsg(target_t *target, u8 msg)
+{
+       LOG_USER_N("%c", msg);
+       
+       return ERROR_OK;
+}
+
 int target_hexmsg(target_t *target, int size, u32 length)
 {
        u8 *data = malloc(CEIL(length * size, 4) * 4);
@@ -61,7 +68,7 @@ int target_hexmsg(target_t *target, int size, u32 length)
        debug_msg_receiver_t *c = target->dbgmsg;
        int i;
        
-       DEBUG("size: %i, length: %i", size, length);
+       LOG_DEBUG("size: %i, length: %i", size, length);
 
        target->type->target_request_data(target, CEIL(length * size, 4), (u8*)data);
 
@@ -83,6 +90,8 @@ int target_hexmsg(target_t *target, int size, u32 length)
                
                if ((i%8 == 7) || (i == length - 1))
                {
+                       LOG_DEBUG("%s", line);
+                       
                        while (c)
                        {
                                command_print(c->cmd_ctx, "%s", line);
@@ -120,11 +129,14 @@ int target_request(target_t *target, u32 request)
                                target_hexmsg(target, (request & 0xff00) >> 8, (request & 0xffff0000) >> 16);
                        }
                        break;
+               case TARGET_REQ_DEBUGCHAR:
+                       target_charmsg(target, (request & 0x00ff0000) >> 16);
+                       break;
 /*             case TARGET_REQ_SEMIHOSTING:
  *                     break;
  */
                default:
-                       ERROR("unknown target request: %2.2x", target_req_cmd);
+                       LOG_ERROR("unknown target request: %2.2x", target_req_cmd);
                        break;
        }
        
@@ -153,6 +165,9 @@ int add_debug_msg_receiver(struct command_context_s *cmd_ctx, target_t *target)
        (*p)->cmd_ctx = cmd_ctx;
        (*p)->next = NULL;
        
+       /* enable callback */
+       target->dbg_msg_enabled = 1;
+       
        return ERROR_OK;
 }
 
@@ -217,6 +232,11 @@ int delete_debug_msg_receiver(struct command_context_s *cmd_ctx, target_t *targe
                        {
                                *p = next;
                                free(c);
+                               if (*p == NULL)
+                               {
+                                       /* disable callback */
+                                       target->dbg_msg_enabled = 0;
+                               }
                                return ERROR_OK;
                        }
                        else