X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Fstartup.tcl;h=033e9c9cfe10a95e1fdb21c811e11ca5463ddf31;hb=207237b92005d604b75ff5280042a6c286a685f8;hp=d68417e808efd135c5bb4d5d92ba55866effef68;hpb=fb71a0a0dddf68fa3f266aab5e35409773acc567;p=openocd.git diff --git a/src/target/startup.tcl b/src/target/startup.tcl index d68417e808..033e9c9cfe 100644 --- a/src/target/startup.tcl +++ b/src/target/startup.tcl @@ -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]]} { - $t arp_examine + $t invoke-event examine-start + set err [catch "$t arp_examine"] + if { $err == 0 } { + $t invoke-event examine-end + } } } @@ -151,3 +155,41 @@ proc armv4_5 params { echo "DEPRECATED! use 'arm $params' not 'armv4_5 $params'" arm $params } + +# 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 +proc init_targets {} { +} + +proc set_default_target_event {t e s} { + if {[$t cget -event $e] == ""} { + $t configure -event $e $s + } +} + +proc init_target_events {} { + set targets [target names] + + foreach t $targets { + set_default_target_event $t gdb-flash-erase-start "reset init" + set_default_target_event $t gdb-flash-write-end "reset halt" + } +} + +# Additionally board config scripts can define a procedure init_board that will be executed after init and init_targets +proc init_board {} { +} + +# deprecated target name cmds +proc cortex_m3 args { + echo "DEPRECATED! use 'cortex_m' not 'cortex_m3'" + eval cortex_m $args +} + +proc cortex_a8 args { + echo "DEPRECATED! use 'cortex_a' not 'cortex_a8'" + eval cortex_a $args +}