X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Fstartup.tcl;h=90f947dfd7e344024f8611735364a854fe85d60a;hb=4dd8f8aa40098114d98c369933e2715b207be735;hp=b597b84d15e7ec575e7e05a33ad08f274ab57a65;hpb=47cb10217a7bc4b97fa169a821db05f40bc2e51d;p=openocd.git diff --git a/src/target/startup.tcl b/src/target/startup.tcl index b597b84d15..90f947dfd7 100644 --- a/src/target/startup.tcl +++ b/src/target/startup.tcl @@ -41,7 +41,7 @@ proc ocd_process_reset_inner { MODE } { set halt 0; } if { $halt < 0 } { - return -error "Invalid mode: $MODE, must be one of: halt, init, or run"; + return -code error "Invalid mode: $MODE, must be one of: halt, init, or run"; } # Target event handlers *might* change which TAPs are enabled @@ -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 + } } } @@ -119,7 +123,7 @@ proc ocd_process_reset_inner { MODE } { set s [$t curstate] if { 0 != [string compare $s "halted" ] } { - return -error [format "TARGET: %s - Not halted" $t] + return -code error [format "TARGET: %s - Not halted" $t] } } } @@ -151,3 +155,15 @@ 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 {} { +} + +# Additionally board config scripts can define a procedure init_board that will be executed after init and init_targets +proc init_board {} { +}