On Sunday 12 July 2009, Øyvind Harboe wrote:
> Does anyone have anything they want in before 0.2?
> 
> Please provide *immediate* feedback if you have anything.

The appended patch.  Zach didn't like the #if 0 so I morphed
it into a comment.

========================
Date: Thu, 09 Jul 2009 16:54:22 +0200
From: Magnus Lundin <lun...@mlu.mine.nu>
Subject: Identify state of a running CM3 target on startup

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.

[ dbrown...@users.sourceforge.net:  just leave a comment re S_SLEEP ]
---
 src/target/cortex_m3.c |   21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)



Date: Thu, 09 Jul 2009 16:54:22 +0200
From: Magnus Lundin <lun...@mlu.mine.nu>
Subject: Identify state of a running CM3 target on startup

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.

[ dbrown...@users.sourceforge.net:  just leave a comment re S_SLEEP ]
---
 src/target/cortex_m3.c |   21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

--- a/src/target/cortex_m3.c
+++ b/src/target/cortex_m3.c
@@ -512,16 +512,19 @@ int cortex_m3_poll(target_t *target)
 		}
 	}
 
-	/*
-	if (cortex_m3->dcb_dhcsr & S_SLEEP)
-		target->state = TARGET_SLEEP;
-	*/
+	/* REVISIT when S_SLEEP is set, it's in a Sleep or DeepSleep state.
+	 * How best to model low power modes?
+	 */
 
-#if 0
-	/* 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);
-	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));
-#endif
+	if (target->state == TARGET_UNKNOWN)
+	{
+		/* check if processor is retiring instructions */
+		if (cortex_m3->dcb_dhcsr & S_RETIRE_ST)
+		{
+			target->state = TARGET_RUNNING;
+			return ERROR_OK;
+		}
+	}
 
 	return ERROR_OK;
 }
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to