target: enable TARGET_EVENT_EXAMINE_* events
authorSpencer Oliver <spen@spen-soft.co.uk>
Thu, 10 May 2012 21:36:23 +0000 (22:36 +0100)
committerSpencer Oliver <spen@spen-soft.co.uk>
Mon, 21 May 2012 16:20:07 +0000 (16:20 +0000)
Change-Id: I33efc0994b7bfe0faa2f4e8457fcc3c8e43d3571
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/635
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
Tested-by: jenkins
Reviewed-by: Bill Traynor <wmat@alphatroop.com>
doc/openocd.texi
src/target/startup.tcl
src/target/target.c

index 8d0ce620ce76e819880d41fc3f8d965277f4c219..91c50f1a49b1024434f4d951075744cc0d37a274 100644 (file)
@@ -4227,12 +4227,10 @@ The following target events are defined:
 @* The target has resumed (i.e.: gdb said run)
 @item @b{early-halted}
 @* Occurs early in the halt process
 @* The target has resumed (i.e.: gdb said run)
 @item @b{early-halted}
 @* Occurs early in the halt process
-@ignore
-@item @b{examine-end}
-@* Currently not used (goal: when JTAG examine completes)
 @item @b{examine-start}
 @item @b{examine-start}
-@* Currently not used (goal: when JTAG examine starts)
-@end ignore
+@* Before target examine is called.
+@item @b{examine-end}
+@* After target examine is called with no errors.
 @item @b{gdb-attach}
 @* When GDB connects. This is before any communication with the target, so this
 can be used to set up the target so it is possible to probe flash. Probing flash
 @item @b{gdb-attach}
 @* When GDB connects. This is before any communication with the target, so this
 can be used to set up the target so it is possible to probe flash. Probing flash
@@ -4318,7 +4316,6 @@ when reset disables PLLs needed to use a fast clock.
 @* Target has resumed
 @end itemize
 
 @* Target has resumed
 @end itemize
 
-
 @node Flash Commands
 @chapter Flash Commands
 
 @node Flash Commands
 @chapter Flash Commands
 
index 02cefb09b23a1b83413083a39979b89393395d5b..90f947dfd7e344024f8611735364a854fe85d60a 100644 (file)
@@ -64,7 +64,11 @@ proc ocd_process_reset_inner { MODE } {
        # Examine all targets on enabled taps.
        foreach t $targets {
                if {[jtag tapisenabled [$t cget -chain-position]]} {
        # Examine all targets on enabled taps.
        foreach t $targets {
                if {[jtag tapisenabled [$t cget -chain-position]]} {
-                       $t arp_examine
+                       $t invoke-event examine-start
+                       set err [catch "$t arp_examine"]
+                       if { $err == 0 } {
+                               $t invoke-event examine-end
+                       }
                }
        }
 
                }
        }
 
@@ -152,8 +156,8 @@ proc armv4_5 params {
        arm $params
 }
 
        arm $params
 }
 
-# Target/chain configuration scripts can either execute commands directly 
-# or define a procedure which is executed once all configuration 
+# Target/chain configuration scripts can either execute commands directly
+# or define a procedure which is executed once all configuration
 # scripts have completed.
 #
 # By default(classic) the config scripts will set up the target configuration
 # scripts have completed.
 #
 # By default(classic) the config scripts will set up the target configuration
index ccaa6e3943c95d83f7902c9e5108c745963e665c..7dae8a9f361adbbbda78ba098cba8919b644550a 100644 (file)
@@ -611,9 +611,17 @@ static int jtag_enable_callback(enum jtag_event event, void *priv)
                return ERROR_OK;
 
        jtag_unregister_event_callback(jtag_enable_callback, target);
                return ERROR_OK;
 
        jtag_unregister_event_callback(jtag_enable_callback, target);
-       return target_examine_one(target);
-}
 
 
+       target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_START);
+
+       int retval = target_examine_one(target);
+       if (retval != ERROR_OK)
+               return retval;
+
+       target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_END);
+
+       return retval;
+}
 
 /* Targets that correctly implement init + examine, i.e.
  * no communication with target during init:
 
 /* Targets that correctly implement init + examine, i.e.
  * no communication with target during init:
@@ -632,12 +640,18 @@ int target_examine(void)
                                        target);
                        continue;
                }
                                        target);
                        continue;
                }
+
+               target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_START);
+
                retval = target_examine_one(target);
                if (retval != ERROR_OK)
                        return retval;
                retval = target_examine_one(target);
                if (retval != ERROR_OK)
                        return retval;
+
+               target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_END);
        }
        return retval;
 }
        }
        return retval;
 }
+
 const char *target_type_name(struct target *target)
 {
        return target->type->name;
 const char *target_type_name(struct target *target)
 {
        return target->type->name;

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)