diff options
author | oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2008-10-13 10:30:33 +0000 |
---|---|---|
committer | oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2008-10-13 10:30:33 +0000 |
commit | bc25d4fa5eab27326c607f90f9f5f5393b3e632e (patch) | |
tree | 3f41e91b249dddc56ef7777236e01ce61ce825a9 /src/helper | |
parent | 0a3b6213bbb8b9b3edaec944610eec48d213a81e (diff) | |
download | openocd+libswd-bc25d4fa5eab27326c607f90f9f5f5393b3e632e.tar.gz openocd+libswd-bc25d4fa5eab27326c607f90f9f5f5393b3e632e.tar.bz2 openocd+libswd-bc25d4fa5eab27326c607f90f9f5f5393b3e632e.tar.xz openocd+libswd-bc25d4fa5eab27326c607f90f9f5f5393b3e632e.zip |
Fixed gaffes in reset script handling + improved error
messages a bit. The file and line # of the syntax error
in a reset script is now printed.
git-svn-id: svn://svn.berlios.de/openocd/trunk@1042 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/helper')
-rw-r--r-- | src/helper/startup.tcl | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/src/helper/startup.tcl b/src/helper/startup.tcl index e3d750e0..a8006702 100644 --- a/src/helper/startup.tcl +++ b/src/helper/startup.tcl @@ -212,11 +212,11 @@ proc ocd_process_reset { MODE } { } foreach t [ target names ] { - # For compatiblity with 'old scripts' - $t invoke-event old-pre_reset - - # New event script. - $t invoke-event reset-start + # For compatiblity with 'old scripts' + $t invoke-event old-pre_reset + + # New event script. + $t invoke-event reset-start } # Init the tap controller. @@ -224,60 +224,60 @@ proc ocd_process_reset { MODE } { # Examine all targets. foreach t [ target names ] { - $t arp_examine + $t arp_examine } # Let the C code know we are asserting reset. foreach t [ target names ] { - $t invoke-event reset-assert-pre - # C code needs to know if we expect to 'halt' - $t arp_reset assert $halt - $t invoke-event reset-assert-post + $t invoke-event reset-assert-pre + # C code needs to know if we expect to 'halt' + $t arp_reset assert $halt + $t invoke-event reset-assert-post } # Now de-assert reset. foreach t [ target names ] { - $t invoke-event reset-deassert-pre - # Again, de-assert code needs to know.. - $t arp_reset deassert $halt - $t invoke-event reset-deassert-post + $t invoke-event reset-deassert-pre + # Again, de-assert code needs to know.. + $t arp_reset deassert $halt + $t invoke-event reset-deassert-post } # Pass 1 - Now try to halt. if { $halt } { - foreach t [target names] { - - # Wait upto 1 second for target to halt. Why 1sec? Cause - # the JTAG tap reset signal might be hooked to a slow - # resistor/capacitor circuit - and it might take a while - # to charge - - # Catch, but ignore any errors. - catch { $t arp_waitstate halted 1000 } - - # Did we succeed? - set s [$t curstate] - - if { 0 != [string compare $s "halted" ] } { - return -error [format "TARGET: %s - Not halted" $t] - } - } + foreach t [target names] { + + # Wait upto 1 second for target to halt. Why 1sec? Cause + # the JTAG tap reset signal might be hooked to a slow + # resistor/capacitor circuit - and it might take a while + # to charge + + # Catch, but ignore any errors. + catch { $t arp_waitstate halted 1000 } + + # Did we succeed? + set s [$t curstate] + + if { 0 != [string compare $s "halted" ] } { + return -error [format "TARGET: %s - Not halted" $t] + } + } } #Pass 2 - if needed "init" if { 0 == [string compare init $MODE] } { - foreach t [target names] { - set err [catch "$t arp_waitstate halted 5000"] - # Did it halt? - if { $err == 0 } { - $t invoke-event old-post_reset - $t invoke-event reset-init - } - } + foreach t [target names] { + set err [catch "$t arp_waitstate halted 5000"] + # Did it halt? + if { $err == 0 } { + $t invoke-event old-post_reset + $t invoke-event reset-init + } + } } foreach t [ target names ] { - $t invoke-event reset-end + $t invoke-event reset-end } } |