Browse Source

doc updates to match "help" better

This makes the documentation a closer match to "help" output:

 - "pathmove" somehow was not documented in the User's Guide

 - "jtag_nsrst_assert_width" and "jtag_ntrst_assert_width"
   are new; both needed descriptions.

 - Removed two undocumented and fairly useless script mechanisms:
    * production/production_info/production_test ... using it,
      requires replacing everything; so having it adds no value.
    * cpu ... way out of date; hopeless to keep that current

Note that anyone using that "production" stuff already defines
their own procedures, and can keep using them with no change.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
tags/v0.3.0-rc0
David Brownell 14 years ago
parent
commit
bc792857a5
2 changed files with 40 additions and 59 deletions
  1. +35
    -7
      doc/openocd.texi
  2. +5
    -52
      src/helper/startup.tcl

+ 35
- 7
doc/openocd.texi View File

@@ -2221,6 +2221,12 @@ needing to cope with both architecture and board specific constraints.

@section Commands for Handling Resets

@deffn {Command} jtag_nsrst_assert_width milliseconds
Minimum amount of time (in milliseconds) OpenOCD should wait
after asserting nSRST (active-low system reset) before
allowing it to be deasserted.
@end deffn

@deffn {Command} jtag_nsrst_delay milliseconds
How long (in milliseconds) OpenOCD should wait after deasserting
nSRST (active-low system reset) before starting new JTAG operations.
@@ -2228,6 +2234,12 @@ When a board has a reset button connected to SRST line it will
probably have hardware debouncing, implying you should use this.
@end deffn

@deffn {Command} jtag_ntrst_assert_width milliseconds
Minimum amount of time (in milliseconds) OpenOCD should wait
after asserting nTRST (active-low JTAG TAP reset) before
allowing it to be deasserted.
@end deffn

@deffn {Command} jtag_ntrst_delay milliseconds
How long (in milliseconds) OpenOCD should wait after deasserting
nTRST (active-low JTAG TAP reset) before starting new JTAG operations.
@@ -6075,6 +6087,15 @@ TAP @code{post-reset} events are delivered to all TAPs
with handlers for that event.
@end deffn

@deffn Command {pathmove} start_state [next_state ...]
Start by moving to @var{start_state}, which
must be one of the @emph{stable} states.
Then, in a series of single state transitions
(conforming to the JTAG state machine) shift to
each @var{next_state} in sequence, one per TCK cycle.
The final state must also be stable.
@end deffn

@deffn Command {runtest} @var{num_cycles}
Move to the @sc{run/idle} state, and execute at least
@var{num_cycles} of the JTAG clock (TCK).
@@ -6102,23 +6123,30 @@ Default is enabled.
@cindex TAP state names

The @var{tap_state} names used by OpenOCD in the @command{drscan},
and @command{irscan} commands are:
@command{irscan}, and @command{pathmove} commands are the same
as those used in SVF boundary scan documents, except that some
versions of SVF use @sc{idle} instead of @sc{run/idle}.

@itemize @bullet
@item @b{RESET} ... acts as if TRST were pulsed
@item @b{RUN/IDLE} ... don't assume this always means IDLE
@item @b{RESET} ... @emph{stable} (with TMS high);
acts as if TRST were pulsed
@item @b{RUN/IDLE} ... @emph{stable}; don't assume this always means IDLE
@item @b{DRSELECT}
@item @b{DRCAPTURE}
@item @b{DRSHIFT} ... TDI/TDO shifting through the data register
@item @b{DRSHIFT} ... @emph{stable}; TDI/TDO shifting
through the data register
@item @b{DREXIT1}
@item @b{DRPAUSE} ... data register ready for update or more shifting
@item @b{DRPAUSE} ... @emph{stable}; data register ready
for update or more shifting
@item @b{DREXIT2}
@item @b{DRUPDATE}
@item @b{IRSELECT}
@item @b{IRCAPTURE}
@item @b{IRSHIFT} ... TDI/TDO shifting through the instruction register
@item @b{IRSHIFT} ... @emph{stable}; TDI/TDO shifting
through the instruction register
@item @b{IREXIT1}
@item @b{IRPAUSE} ... instruction register ready for update or more shifting
@item @b{IRPAUSE} ... @emph{stable}; instruction register ready
for update or more shifting
@item @b{IREXIT2}
@item @b{IRUPDATE}
@end itemize


+ 5
- 52
src/helper/startup.tcl View File

@@ -291,59 +291,10 @@ proc ocd_process_reset_inner { MODE } {
}
}

# stubs for targets scripts that do not have production procedure
proc production_info {} {
return "Imagine an explanation here..."
}
add_help_text production_info "Displays information on production procedure for target script. Implement this procedure in target script."

proc production {firmwarefile serialnumber} {
puts "Imagine production procedure running successfully. Programmed $firmwarefile with serial number $serialnumber"
}

add_help_text production "<serialnumber> - Runs production procedure. Throws exception if procedure failed. Prints progress messages. Implement this procedure in the target script."

proc production_test {} {
puts "Imagine nifty test procedure having run to completion here."
}
add_help_text production_test "Runs test procedure. Throws exception if procedure failed. Prints progress messages. Implement in target script."

add_help_text cpu "<name> - prints out target options and a comment on CPU which matches name"

# A list of names of CPU and options required
set ocd_cpu_list {
{
name IXP42x
options {xscale -variant IXP42x}
comment {IXP42x cpu}
}
{
name arm7
options {arm7tdmi -variant arm7tdmi}
comment {vanilla ARM7}
}
}

# Invoked from Tcl code
proc ocd_cpu {args} {
set name $args
set result ""
global ocd_cpu_list
foreach a [lsort $ocd_cpu_list] {
if {[string length $args]==0||[string first [string toupper $name] [string toupper "$a(name)$a(options)$a(comment)"]]!=-1} {
lappend result $a
}
}
return $result
}
#########

proc cpu {args} {
# 0123456789012345678901234567890123456789012345678901234567890123456789
puts "CPU Options Comment"
foreach a [lsort [ocd_cpu $args]] {
puts [format "%-20s%-40s%s" $a(name) $a(options) $a(comment)]
}
}
# REVISIT power_restore, power_dropout, srst_deasserted, srst_asserted
# are currently neither documented nor supported except on ZY1000.

proc power_restore {} {
puts "Sensed power restore."
@@ -366,6 +317,8 @@ proc srst_asserted {} {
puts "Sensed nSRST asserted."
}

#########

# catch any exceptions, capture output and return output
proc capture_catch {a} {
catch {


Loading…
Cancel
Save