diff options
author | oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2008-02-27 06:44:45 +0000 |
---|---|---|
committer | oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2008-02-27 06:44:45 +0000 |
commit | 5a15c6d8079ac3e8b0677ae9665e841856a42772 (patch) | |
tree | f2907a4a51fe24687a8276f8aa47d88b129e1862 /doc | |
parent | 0686e944f300e433d449eaa5c7bc576c1e65fd1a (diff) |
Nicolas Pitre listed some more devices.
git-svn-id: svn://svn.berlios.de/openocd/trunk@356 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'doc')
-rw-r--r-- | doc/openocd.texi | 3823 |
1 files changed, 1912 insertions, 1911 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi index d19a09ee..e42c33cb 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -1,1911 +1,1912 @@ -\input texinfo @c -*-texinfo-*- -@c %**start of header -@setfilename openocd.info -@settitle Open On-Chip Debugger (openocd) -@c %**end of header - -@include version.texi - -@titlepage -@title Open On-Chip Debugger (openocd) -@subtitle Edition @value{EDITION} for openocd version @value{VERSION} -@subtitle @value{UPDATED} -@page -@vskip 0pt plus 1filll -@end titlepage - -@contents - -@node Top, About, , (dir) -@top OpenOCD - -This is edition @value{EDITION} of the openocd manual for version -@value{VERSION}, @value{UPDATED} - -@menu -* About:: About Openocd. -* Developers:: -* Building:: Building Openocd -* Running:: Running Openocd -* Configuration:: Openocd Configuration. -* Commands:: Openocd Commands -* Sample Scripts:: Sample Target Scripts -* GDB and Openocd:: Using GDB and Openocd -* FAQ:: Frequently Asked Questions -* License:: GNU Free Documentation License -* Index:: Main index. -@end menu - -@node About -@unnumbered About -@cindex about - -The Open On-Chip Debugger (openocd) aims to provide debugging, in-system programming -and boundary-scan testing for embedded target devices. The targets are interfaced -using JTAG (IEEE 1149.1) compliant hardware, but this may be extended to other -connection types in the future. - -Openocd currently supports Wiggler (clones), FTDI FT2232 based JTAG interfaces, the -Amontec JTAG Accelerator, and the Gateworks GW1602. It allows ARM7 (ARM7TDMI and ARM720t), -ARM9 (ARM920t, ARM922t, ARM926ej--s, ARM966e--s), XScale (PXA25x, IXP42x) and -Cortex-M3 (Luminary Stellaris LM3 and ST STM32) based cores to be debugged. - -Flash writing is supported for external CFI compatible flashes (Intel and AMD/Spansion -command set) and several internal flashes (LPC2000, AT91SAM7, STR7x, STR9x, LM3 -and STM32x). Preliminary support for using the LPC3180's NAND flash controller is included. - -@node Developers -@chapter Developers -@cindex developers - -Openocd has been created by Dominic Rath as part of a diploma thesis written at the -University of Applied Sciences Augsburg (@uref{http://www.fh-augsburg.de}). -Others interested in improving the state of free and open debug and testing technology -are welcome to participate. - -Other developers have contributed support for additional targets and flashes as well -as numerous bugfixes and enhancements. See the AUTHORS file for regular contributors. - -@node Building -@chapter Building -@cindex building openocd - -You can download the current SVN version with SVN client of your choice from the -following repositories: - - (@uref{svn://svn.berlios.de/openocd/trunk}) - -or - - (@uref{http://svn.berlios.de/svnroot/repos/openocd/trunk}) - -Using the SVN command line client, you could use the following command to fetch the -latest version (make sure there is no (non-svn) directory called "openocd" in the -current directory): - -@smallexample - svn checkout svn://svn.berlios.de/openocd/trunk -@end smallexample - -Building the OpenOCD requires a recent version of the GNU autotools. -On my build system, I'm using autoconf 2.13 and automake 1.9. For building on Windows, -you have to use Cygwin. Make sure that your @env{PATH} environment variable contains no -other locations with Unix utils (like UnxUtils) - these can't handle the Cygwin -paths, resulting in obscure dependency errors (This is an observation I've gathered -from the logs of one user - correct me if I'm wrong). - -You further need the appropriate driver files, if you want to build support for -a FTDI FT2232 based interface: -@itemize @bullet -@item @b{ftdi2232} libftdi (@uref{http://www.intra2net.com/opensource/ftdi/}) -@item @b{ftd2xx} libftd2xx (@uref{http://www.ftdichip.com/Drivers/D2XX.htm}) -@item When using the Amontec JTAGkey, you have to get the drivers from the Amontec -homepage (@uref{www.amontec.com}), as the JTAGkey uses a non-standard VID/PID. -@end itemize - -Please note that the ftdi2232 variant (using libftdi) isn't supported under Cygwin. -You have to use the ftd2xx variant (using FTDI's D2XX) on Cygwin. - -In general, the D2XX driver provides superior performance (several times as fast), -but has the draw-back of being binary-only - though that isn't as worse, as it isn't -a kernel module, only a user space library. - -To build OpenOCD (on both Linux and Cygwin), use the following commands: -@smallexample - ./bootstrap -@end smallexample -Bootstrap generates the configure script, and prepares building on your system. -@smallexample - ./configure -@end smallexample -Configure generates the Makefiles used to build OpenOCD -@smallexample - make -@end smallexample -Make builds the OpenOCD, and places the final executable in ./src/ - -The configure script takes several options, specifying which JTAG interfaces -should be included: - -@itemize @bullet -@item ---enable-parport -@item ---enable-parport_ppdev -@item ---enable-amtjtagaccel -@item ---enable-ft2232_ftd2xx -@footnote{Using the latest D2XX drivers from FTDI and following their installation -instructions, I had to use @option{--enable-ft2232_libftd2xx} for the OpenOCD to -build properly} -@item ---enable-ft2232_libftdi -@item ---with-ftd2xx=/path/to/d2xx/ -@end itemize - -If you want to access the parallel port using the PPDEV interface you have to specify -both the @option{--enable-parport} AND the @option{--enable-parport_ppdev} option since -the @option{--enable-parport_ppdev} option actually is an option to the parport driver -(see @uref{http://forum.sparkfun.com/viewtopic.php?t=3795} for more info). - -Cygwin users have to specify the location of the FTDI D2XX package. This should be an -absolute path containing no spaces. - -Linux users should copy the various parts of the D2XX package to the appropriate -locations, i.e. /usr/include, /usr/lib. - -@node Running -@chapter Running -@cindex running openocd -@cindex --configfile -@cindex --debug_level -@cindex --logfile -@cindex --search -The OpenOCD runs as a daemon, waiting for connections from clients (Telnet or GDB). -Run with @option{--help} or @option{-h} to view the available command line arguments. - -It reads its configuration by default from the file openocd.cfg located in the current -working directory. This may be overwritten with the @option{-f <configfile>} command line -switch. - -To enable debug output (when reporting problems or working on OpenOCD itself), use -the @option{-d} command line switch. This sets the debug_level to "3", outputting -the most information, including debug messages. The default setting is "2", outputting -only informational messages, warnings and errors. You can also change this setting -from within a telnet or gdb session (@option{debug_level <n>}). - -You can redirect all output from the daemon to a file using the @option{-l <logfile>} switch. - -Search paths for config/script files can be added to openocd by using -the @option{-s <search>} switch. - -@node Configuration -@chapter Configuration -@cindex configuration -The Open On-Chip Debugger (OpenOCD) runs as a daemon, and reads it current configuration -by default from the file openocd.cfg in the current directory. A different configuration -file can be specified with the @option{-f <conf.file>} given at the openocd command line. - -The configuration file is used to specify on which ports the daemon listens for new -connections, the JTAG interface used to connect to the target, the layout of the JTAG -chain, the targets that should be debugged, and connected flashes. - -@section Daemon configuration - -@itemize @bullet -@item @b{telnet_port} <@var{number}> -@cindex telnet_port -Port on which to listen for incoming telnet connections -@item @b{gdb_port} <@var{number}> -@cindex gdb_port -First port on which to listen for incoming GDB connections. The GDB port for the -first target will be gdb_port, the second target will listen on gdb_port + 1, and so on. -@item @b{gdb_detach} <@var{resume|reset|halt|nothing}> -@cindex gdb_detach -Configures what openocd will do when gdb detaches from the daeman. -Default behaviour is <@var{resume}> -@item @b{gdb_memory_map} <@var{enable|disable}> -@cindex gdb_memory_map -Set to <@var{enable}> so that openocd will send the memory configuration to gdb when -requested. gdb will then know when to set hardware breakpoints, and program flash -using the gdb load command. @option{gdb_flash_program enable} will also need enabling -for flash programming to work. -Default behaviour is <@var{disable}> -@item @b{gdb_flash_program} <@var{enable|disable}> -@cindex gdb_flash_program -Set to <@var{enable}> so that openocd will program the flash memory when a -vFlash packet is received. -Default behaviour is <@var{disable}> -@item @b{daemon_startup} <@var{mode}> either @samp{attach} or @samp{reset} -@cindex daemon_startup -Tells the OpenOCD whether it should reset the target when the daemon is launched, or -if it should just attach to the target. -@end itemize - -@section JTAG interface configuration - -@itemize @bullet -@item @b{interface} <@var{name}> -@cindex interface -Use the interface driver <@var{name}> to connect to the target. Currently supported -interfaces are -@itemize @minus -@item parport -PC parallel port bit-banging (Wigglers, PLD download cable, ...) -@end itemize -@itemize @minus -@item amt_jtagaccel -Amontec Chameleon in its JTAG Accelerator configuration connected to a PC's EPP -mode parallel port -@end itemize -@itemize @minus -@item ft2232 -FTDI FT2232 based devices using either the open-source libftdi or the binary only -FTD2XX driver. The FTD2XX is superior in performance, but not available on every -platform. The libftdi uses libusb, and should be portable to all systems that provide -libusb. -@end itemize -@itemize @minus -@item ep93xx -Cirrus Logic EP93xx based single-board computer bit-banging (in development) -@end itemize -@end itemize - -@itemize @bullet -@item @b{jtag_speed} <@var{number}> -@cindex jtag_speed -Limit the maximum speed of the JTAG interface. Usually, a value of zero means maximum -speed. The actual effect of this option depends on the JTAG interface used. - -@itemize @minus -@item wiggler: maximum speed / @var{number} -@item ft2232: 6MHz / (@var{number}+1) -@item amt jtagaccel: 8 / 2**@var{number} -@end itemize - -Note: Make sure the jtag clock is no more than @math{1/6th × CPU-Clock}. This is -especially true for synthesized cores (-S). - -@item @b{reset_config} <@var{signals}> [@var{combination}] [@var{trst_type}] [@var{srst_type}] -@cindex reset_config -The configuration of the reset signals available on the JTAG interface AND the target. -If the JTAG interface provides SRST, but the target doesn't connect that signal properly, -then OpenOCD can't use it. <@var{signals}> can be @samp{none}, @samp{trst_only}, -@samp{srst_only} or @samp{trst_and_srst}. -[@var{combination}] is an optional value specifying broken reset signal implementations. -@samp{srst_pulls_trst} states that the testlogic is reset together with the reset of -the system (e.g. Philips LPC2000, "broken" board layout), @samp{trst_pulls_srst} says -that the system is reset together with the test logic (only hypothetical, I haven't -seen hardware with such a bug, and can be worked around). - -The [@var{trst_type}] and [@var{srst_type}] parameters allow the driver type of the -reset lines to be specified. Possible values are @samp{trst_push_pull} (default) -and @samp{trst_open_drain} for the test reset signal, and @samp{srst_open_drain} -(default) and @samp{srst_push_pull} for the system reset. These values only affect -JTAG interfaces with support for different drivers, like the Amontec JTAGkey and JTAGAccelerator. - -@item @b{jtag_device} <@var{IR length}> <@var{IR capture}> <@var{IR mask}> <@var{IDCODE instruction}> -@cindex jtag_device -Describes the devices that form the JTAG daisy chain, with the first device being -the one closest to TDO. The parameters are the length of the instruction register -(4 for all ARM7/9s), the value captured during Capture-IR (0x1 for ARM7/9), and a mask -of bits that should be validated when doing IR scans (all four bits (0xf) for ARM7/9). -The IDCODE instruction will in future be used to query devices for their JTAG -identification code. This line is the same for all ARM7 and ARM9 devices. -Other devices, like CPLDs, require different parameters. An example configuration -line for a Xilinx XC9500 CPLD would look like this: -@smallexample -jtag_device 8 0x01 0x0e3 0xfe -@end smallexample -The instruction register (IR) is 8 bits long, during Capture-IR 0x01 is loaded into -the IR, but only bits 0-1 and 5-7 should be checked, the others (2-4) might vary. -The IDCODE instruction is 0xfe. - -@item @b{jtag_nsrst_delay} <@var{ms}> -@cindex jtag_nsrst_delay -How long (in miliseconds) the OpenOCD should wait after deasserting nSRST before -starting new JTAG operations. -@item @b{jtag_ntrst_delay} <@var{ms}> -@cindex jtag_ntrst_delay -How long (in miliseconds) the OpenOCD should wait after deasserting nTRST before -starting new JTAG operations. - -The jtag_n[st]rst_delay options are useful if reset circuitry (like a reset supervisor, -or on-chip features) keep a reset line asserted for some time after the external reset -got deasserted. -@end itemize - -@section parport options - -@itemize @bullet -@item @b{parport_port} <@var{number}> -@cindex parport_port -Either the address of the I/O port (default: 0x378 for LPT1) or the number of -the @file{/dev/parport} device - -When using PPDEV to access the parallel port, use the number of the parallel port: -@option{parport_port 0} (the default). If @option{parport_port 0x378} is specified -you may encounter a problem. -@item @b{parport_cable} <@var{name}> -@cindex parport_cable -The layout of the parallel port cable used to connect to the target. -Currently supported cables are -@itemize @minus -@item wiggler -@cindex wiggler -Original Wiggler layout, also supported by several clones, such -as the Olimex ARM-JTAG -@item old_amt_wiggler -@cindex old_amt_wiggler -The Wiggler configuration that comes with Amontec's Chameleon Programmer. The new -version available from the website uses the original Wiggler layout ('@var{wiggler}') -@item chameleon -@cindex chameleon -Describes the connection of the Amontec Chameleon's CPLD when operated in -configuration mode. This is only used to program the Chameleon itself, not -a connected target. -@item dlc5 -@cindex dlc5 -Xilinx Parallel cable III. -@item triton -@cindex triton -The parallel port adapter found on the 'Karo Triton 1 Development Board'. -This is also the layout used by the HollyGates design -(see @uref{http://www.lartmaker.nl/projects/jtag/}). -@item flashlink -@cindex flashlink -ST Parallel cable. -@end itemize -@item @b{parport_write_on_exit} <@var{on|off}> -@cindex parport_write_on_exit -This will configure the parallel driver to write a known value to the parallel -interface on exiting openocd -@end itemize - -@section amt_jtagaccel options -@itemize @bullet -@item @b{parport_port} <@var{number}> -@cindex parport_port -Either the address of the I/O port (default: 0x378 for LPT1) or the number of the -@file{/dev/parport} device -@end itemize -@section ft2232 options - -@itemize @bullet -@item @b{ft2232_device_desc} <@var{description}> -@cindex ft2232_device_desc -The USB device description of the FTDI FT2232 device. If not specified, the FTDI -default value is used. This setting is only valid if compiled with FTD2XX support. -@item @b{ft2232_layout} <@var{name}> -@cindex ft2232_layout -The layout of the FT2232 GPIO signals used to control output-enables and reset -signals. Valid layouts are -@itemize @minus -@item usbjtag -The "USBJTAG-1" layout described in the original OpenOCD diploma thesis -@item jtagkey -Amontec JTAGkey and JTAGkey-tiny -@item signalyzer -Signalyzer -@item olimex-jtag -Olimex ARM-USB-OCD -@item m5960 -American Microsystems M5960 -@item evb_lm3s811 -Luminary Micro EVB_LM3S811 as a JTAG interface (not onboard processor), no TRST or -SRST signals on external connector -@item comstick -Hitex STR9 comstick -@item stm32stick -Hitex STM32 Performance Stick -@item flyswatter -Tin Can Tools Flyswatter -@item turtelizer2 -egnite Software turtelizer2 -@item oocdlink -OOCDLink -@end itemize - -@item @b{ft2232_vid_pid} <@var{vid}> <@var{pid}> -The vendor ID and product ID of the FTDI FT2232 device. If not specified, the FTDI -default values are used. This command is not available on Windows. -@item @b{ft2232_latency} <@var{ms}> -On some systems using ft2232 based JTAG interfaces the FT_Read function call in -ft2232_read() fails to return the expected number of bytes. This can be caused by -USB communication delays and has proved hard to reproduce and debug. Setting the -FT2232 latency timer to a larger value increases delays for short USB packages but it -also reduces the risk of timeouts before receiving the expected number of bytes. -The OpenOCD default value is 2 and for some systems a value of 10 has proved useful. -@end itemize - -@section ep93xx options -@cindex ep93xx options -Currently, there are no options available for the ep93xx interface. - -@page -@section Target configuration - -@itemize @bullet -@item @b{target} <@var{type}> <@var{endianess}> <@var{reset_mode}> <@var{JTAG pos}> -<@var{variant}> -@cindex target -Defines a target that should be debugged. Currently supported types are: -@itemize @minus -@item arm7tdmi -@item arm720t -@item arm9tdmi -@item arm920t -@item arm922t -@item arm926ejs -@item arm966e -@item cortex_m3 -@item xscale -@end itemize - -If you want to use a target board that is not on this list, see Adding a new -target board - -Endianess may be @option{little} or @option{big}. - -The reset_mode specifies what should happen to the target when a reset occurs: -@itemize @minus -@item reset_halt -@cindex reset_halt -Immediately request a target halt after reset. This allows targets to be debugged -from the very first instruction. This is only possible with targets and JTAG -interfaces that correctly implement the reset signals. -@item reset_init -@cindex reset_init -Similar to @option{reset_halt}, but executes the script file defined to handle the -'reset' event for the target. Like @option{reset_halt} this only works with -correct reset implementations. -@item reset_run -@cindex reset_run -Simply let the target run after a reset. -@item run_and_halt -@cindex run_and_halt -Let the target run for some time (default: 1s), and then request halt. -@item run_and_init -@cindex run_and_init -A combination of @option{reset_init} and @option{run_and_halt}. The target is allowed -to run for some time, then halted, and the @option{reset} event script is executed. -@end itemize - -On JTAG interfaces / targets where system reset and test-logic reset can't be driven -completely independent (like the LPC2000 series), or where the JTAG interface is -unavailable for some time during startup (like the STR7 series), you can't use -@option{reset_halt} or @option{reset_init}. - -@item @b{target_script} <@var{target#}> <@var{event}> <@var{script_file}> -@cindex target_script -Event is either @option{reset}, @option{post_halt}, @option{pre_resume} or @option{gdb_program_config} - -TODO: describe exact semantic of events -@item @b{run_and_halt_time} <@var{target#}> <@var{time_in_ms}> -@cindex run_and_halt_time -The amount of time the debugger should wait after releasing reset before it asserts -a debug request. This is used by the @option{run_and_halt} and @option{run_and_init} -reset modes. -@item @b{working_area} <@var{target#}> <@var{address}> <@var{size}> -<@var{backup}|@var{nobackup}> -@cindex working_area -Specifies a working area for the debugger to use. This may be used to speed-up -downloads to target memory and flash operations, or to perform otherwise unavailable -operations (some coprocessor operations on ARM7/9 systems, for example). The last -parameter decides whether the memory should be preserved <@var{backup}>. If possible, use -a working_area that doesn't need to be backed up, as that slows down operation. -@end itemize - -@subsection arm7tdmi options -@cindex arm7tdmi options -target arm7tdmi <@var{endianess}> <@var{reset_mode}> <@var{jtag#}> -The arm7tdmi target definition requires at least one additional argument, specifying -the position of the target in the JTAG daisy-chain. The first JTAG device is number 0. -The optional [@var{variant}] parameter has been removed in recent versions. -The correct feature set is determined at runtime. - -@subsection arm720t options -@cindex arm720t options -ARM720t options are similar to ARM7TDMI options. - -@subsection arm9tdmi options -@cindex arm9tdmi options -ARM9TDMI options are similar to ARM7TDMI options. Supported variants are -@option{arm920t}, @option{arm922t} and @option{arm940t}. -This enables the hardware single-stepping support found on these cores. - -@subsection arm920t options -@cindex arm920t options -ARM920t options are similar to ARM9TDMI options. - -@subsection arm966e options -@cindex arm966e options -ARM966e options are similar to ARM9TDMI options. - -@subsection xscale options -@cindex xscale options -Supported variants are @option{ixp42x}, @option{ixp45x}, @option{ixp46x}, -@option{pxa250}, @option{pxa255}, @option{pxa26x}. - -@section Flash configuration -@cindex Flash configuration - -@itemize @bullet -@item @b{flash bank} <@var{driver}> <@var{base}> <@var{size}> <@var{chip_width}> -<@var{bus_width}> <@var{target#}> [@var{driver_options ...}] -@cindex flash bank -Configures a flash bank at <@var{base}> of <@var{size}> bytes and <@var{chip_width}> -and <@var{bus_width}> bytes using the selected flash <driver>. - -@item @b{flash auto_erase} <@option{on}|@option{off}> -@cindex flash auto_erase -auto erase flash banks prior to writing. Currently only works when using -@option{flash write_image} command. Default is @option{off}. -@end itemize - -@subsection lpc2000 options -@cindex lpc2000 options - -@b{flash bank lpc2000} <@var{base}> <@var{size}> 0 0 <@var{target#}> <@var{variant}> -<@var{clock}> [@var{calc_checksum}] -LPC flashes don't require the chip and bus width to be specified. Additional -parameters are the <@var{variant}>, which may be @var{lpc2000_v1} (older LPC21xx and LPC22xx) -or @var{lpc2000_v2} (LPC213x, LPC214x, LPC210[123], LPC23xx and LPC24xx), the number -of the target this flash belongs to (first is 0), the frequency at which the core -is currently running (in kHz - must be an integral number), and the optional keyword -@var{calc_checksum}, telling the driver to calculate a valid checksum for the exception -vector table. - -@subsection cfi options -@cindex cfi options - -@b{flash bank cfi} <@var{base}> <@var{size}> <@var{chip_width}> <@var{bus_width}> -<@var{target#}> -CFI flashes require the number of the target they're connected to as an additional -argument. The CFI driver makes use of a working area (specified for the target) -to significantly speed up operation. - -@var{chip_width} and @var{bus_width} are specified in bytes. - -@subsection at91sam7 options -@cindex at91sam7 options - -@b{flash bank at91sam7} 0 0 0 0 <@var{target#}> -AT91SAM7 flashes only require the @var{target#}, all other values are looked up after -reading the chip-id and type. - -@subsection str7 options -@cindex str7 options - -@b{flash bank str7x} <@var{base}> <@var{size}> 0 0 <@var{target#}> <@var{variant}> -variant can be either STR71x, STR73x or STR75x. - -@subsection str9 options -@cindex str9 options - -@b{flash bank str9x} <@var{base}> <@var{size}> 0 0 <@var{target#}> -The str9 needs the flash controller to be configured prior to Flash programming, eg. -@smallexample -str9x flash_config 0 4 2 0 0x80000 -@end smallexample -This will setup the BBSR, NBBSR, BBADR and NBBADR registers respectively. - -@subsection str9 options (str9xpec driver) - -@b{flash bank str9xpec} <@var{base}> <@var{size}> 0 0 <@var{target#}> -Before using the flash commands the turbo mode will need enabling using str9xpec -@option{enable_turbo} <@var{num>.} - -Only use this driver for locking/unlocking the device or configuring the option bytes. -Use the standard str9 driver for programming. - -@subsection stellaris (LM3Sxxx) options -@cindex stellaris (LM3Sxxx) options - -@b{flash bank stellaris} <@var{base}> <@var{size}> 0 0 <@var{target#}> -stellaris flash plugin only require the @var{target#}. - -@subsection stm32x options -@cindex stm32x options - -@b{flash bank stm32x} <@var{base}> <@var{size}> 0 0 <@var{target#}> -stm32x flash plugin only require the @var{target#}. - -@node Commands -@chapter Commands -@cindex commands - -The Open On-Chip Debugger (OpenOCD) allows user interaction through a telnet interface -(default: port 4444) and a GDB server (default: port 3333). The command line interpreter -is available from both the telnet interface and a GDB session. To issue commands to the -interpreter from within a GDB session, use the @option{monitor} command, e.g. use -@option{monitor poll} to issue the @option{poll} command. All output is relayed through the -GDB session. - -@section Daemon - -@itemize @bullet -@item @b{sleep} <@var{msec}> -@cindex sleep -Wait for n milliseconds before resuming. Useful in connection with script files -(@var{script} command and @var{target_script} configuration). - -@item @b{shutdown} -@cindex shutdown -Close the OpenOCD daemon, disconnecting all clients (GDB, Telnet). - -@item @b{debug_level} [@var{n}] -@cindex debug_level -Display or adjust debug level to n<0-3> - -@item @b{log_output} <@var{file}> -@cindex log_output -Redirect logging to <file> (default: stderr) - -@item @b{script} <@var{file}> -@cindex script -Execute commands from <file> - -@end itemize - -@subsection Target state handling -@itemize @bullet -@item @b{poll} [@option{on}|@option{off}] -@cindex poll -Poll the target for its current state. If the target is in debug mode, architecture -specific information about the current state are printed. An optional parameter -allows continuous polling to be enabled and disabled. - -@item @b{halt} [@option{ms}] -@cindex halt -Send a halt request to the target and waits for it to halt for [@option{ms}]. -Default [@option{ms}] is 5 seconds if no arg given. -Optional arg @option{ms} is a timeout in milliseconds. Using 0 as the [@option{ms}] -will stop openocd from waiting. - -@item @b{wait_halt} [@option{ms}] -@cindex wait_halt -Wait for the target to enter debug mode. Optional [@option{ms}] is -a timeout in milliseconds. Default [@option{ms}] is 5 seconds if no -arg given. - -@item @b{resume} [@var{address}] -@cindex resume -Resume the target at its current code position, or at an optional address. -Openocd will wait 5 seconds for the target to resume. - -@item @b{step} [@var{address}] -@cindex step -Single-step the target at its current code position, or at an optional address. - -@item @b{reset} [@option{run}|@option{halt}|@option{init}|@option{run_and_halt} -|@option{run_and_init}] -@cindex reset -Do a hard-reset. The optional parameter specifies what should happen after the reset. -This optional parameter overwrites the setting specified in the configuration file, -making the new behaviour the default for the @option{reset} command. -@itemize @minus -@item run -@cindex reset run -Let the target run. -@item halt -@cindex reset halt -Immediately halt the target (works only with certain configurations). -@item init -@cindex reset init -Immediately halt the target, and execute the reset script (works only with certain -configurations) -@item run_and_halt -@cindex reset run_and_halt -Let the target run for a certain amount of time, then request a halt. -@item run_and_init -@cindex reset run_and_init -Let the target run for a certain amount of time, then request a halt. Execute the -reset script once the target entered debug mode. -@end itemize -@end itemize - -@subsection Memory access commands -These commands allow accesses of a specific size to the memory system: -@itemize @bullet -@item @b{mdw} <@var{addr}> [@var{count}] -@cindex mdw -display memory words -@item @b{mdh} <@var{addr}> [@var{count}] -@cindex mdh -display memory half-words -@item @b{mdb} <@var{addr}> [@var{count}] -@cindex mdb -display memory bytes -@item @b{mww} <@var{addr}> <@var{value}> -@cindex mww -write memory word -@item @b{mwh} <@var{addr}> <@var{value}> -@cindex mwh -write memory half-word -@item @b{mwb} <@var{addr}> <@var{value}> -@cindex mwb -write memory byte - -@item @b{load_image} <@var{file}> <@var{address}> [@option{bin}|@option{ihex}|@option{elf}] -@cindex load_image -Load image <@var{file}> to target memory at <@var{address}> -@item @b{dump_image} <@var{file}> <@var{address}> <@var{size}> -@cindex dump_image -Dump <@var{size}> bytes of target memory starting at <@var{address}> to a -(binary) <@var{file}>. -@item @b{verify_image} <@var{file}> <@var{address}> [@option{bin}|@option{ihex}|@option{elf}] -@cindex verify_image -Verify <@var{file}> to target memory starting at <@var{address}>. -This will first attempt using a crc checksum, if this fails it will try a binary compare. -@item @b{load_binary} <@var{file}> <@var{address}> [DEPRECATED] -@cindex load_binary -Load binary <@var{file}> to target memory at <@var{address}> -@item @b{dump_binary} <@var{file}> <@var{address}> <@var{size}> [DEPRECATED] -@cindex dump_binary -Dump <@var{size}> bytes of target memory starting at <@var{address}> to a -(binary) <@var{file}>. -@end itemize - -@subsection Flash commands -@cindex Flash commands -@itemize @bullet -@item @b{flash banks} -@cindex flash banks -List configured flash banks -@item @b{flash info} <@var{num}> -@cindex flash info -Print info about flash bank <@option{num}> -@item @b{flash probe} <@var{num}> -@cindex flash probe -Identify the flash, or validate the parameters of the configured flash. Operation -depends on the flash type. -@item @b{flash erase_check} <@var{num}> -@cindex flash erase_check -Check erase state of sectors in flash bank <@var{num}>. This is the only operation that -updates the erase state information displayed by @option{flash info}. That means you have -to issue an @option{erase_check} command after erasing or programming the device to get -updated information. -@item @b{flash protect_check} <@var{num}> -@cindex flash protect_check -Check protection state of sectors in flash bank <num>. - -@item @b{flash erase} <@var{num}> <@var{first}> <@var{last}> [DEPRECATED] -@cindex flash erase -Erase sectors at bank <@var{num}>, starting at sector <@var{first}> up to and including -<@var{last}>. Sector numbering starts at 0. Depending on the flash type, erasing might -require the protection to be disabled first (e.g. Intel Advanced Bootblock flash using -the CFI driver). This command was replaced by the new command -@option{flash erase_sector} using the same syntax. -@item @b{flash erase_sector} <@var{num}> <@var{first}> <@var{last}> -@cindex flash erase_sector -Erase sectors at bank <@var{num}>, starting at sector <@var{first}> up to and including -<@var{last}>. Sector numbering starts at 0. Depending on the flash type, erasing might -require the protection to be disabled first (e.g. Intel Advanced Bootblock flash using -the CFI driver). -@item @b{flash erase_address} <@var{address}> <@var{length}> -@cindex flash erase_address -Erase sectors starting at <@var{address}> for <@var{length}> number of bytes -@item @b{flash write} <@var{num}> <@var{file}> <@var{offset}> [DEPRECATED] -@cindex flash write -Write the binary <@var{file}> to flash bank <@var{num}>, starting at <@var{offset}> -bytes from the beginning of the bank. This command was replaced by the new command -@option{flash write_binary} using the same syntax. -@item @b{flash write_binary} <@var{num}> <@var{file}> <@var{offset}> -@cindex flash write_binary -Write the binary <@var{file}> to flash bank <@var{num}>, starting at -<@option{offset}> bytes from the beginning of the bank. -@item @b{flash write_image} <@var{file}> [@var{offset}] [@var{type}] -@cindex flash write_image -Write the image <@var{file}> to the current target's flash bank(s). A relocation -[@var{offset}] can be specified and the file [@var{type}] can be specified -explicitly as @option{bin} (binary), @option{ihex} (Intel hex), @option{elf} -(ELF file) or @option{s19} (Motorola s19). -@item @b{flash protect} <@var{num}> <@var{first}> <@var{last}> <@option{on}|@option{off}> -@cindex flash protect -Enable (@var{on}) or disable (@var{off}) protection of flash sectors <@var{first}> to -<@var{last}> of @option{flash bank} <@var{num}>. -@item @b{flash auto_erase} <@var{on}|@var{off}> -@cindex flash auto_erase -Enable (@option{on}) to erase flash banks prior to writing using the flash @option{write_image} command -only. Default is (@option{off}), flash banks have to be erased using @option{flash erase} command. -@end itemize - -@page -@section Target Specific Commands -@cindex Target Specific Commands - -@subsection AT91SAM7 specific commands -@cindex AT91SAM7 specific commands -The flash configuration is deduced from the chip identification register. The flash -controller handles erases automatically on a page (128/265 byte) basis so erase is -not necessary for flash programming. AT91SAM7 processors with less than 512K flash -only have a single flash bank embedded on chip. AT91SAM7xx512 have two flash planes -that can be erased separatly.Only an EraseAll command is supported by the controller -for each flash plane and this is called with -@itemize @bullet -@item @b{flash erase} <@var{num}> @var{first_plane} @var{last_plane} -bulk erase flash planes first_plane to last_plane. -@item @b{at91sam7 gpnvm} <@var{num}> <@var{bit}> <@option{set}|@option{clear}> -@cindex at91sam7 gpnvm -set or clear a gpnvm bit for the processor -@end itemize - -@subsection STR9 specific commands -@cindex STR9 specific commands -These are flash specific commands when using the str9xpec driver. -@itemize @bullet -@item @b{str9xpec enable_turbo} <@var{num}> -@cindex str9xpec enable_turbo -enable turbo mode, simply this will remove the str9 from the chain and talk -directly to the embedded flash controller. -@item @b{str9xpec disable_turbo} <@var{num}> -@cindex str9xpec disable_turbo -restore the str9 into jtag chain. -@item @b{str9xpec lock} <@var{num}> -@cindex str9xpec lock -lock str9 device. The str9 will only respond to an unlock command that will -erase the device. -@item @b{str9xpec unlock} <@var{num}> -@cindex str9xpec unlock -unlock str9 device. -@item @b{str9xpec options_read} <@var{num}> -@cindex str9xpec options_read -read str9 option bytes. -@item @b{str9xpec options_write} <@var{num}> -@cindex str9xpec options_write -write str9 option bytes. -@end itemize - -@subsection STR9 configuration -@cindex STR9 configuration -@itemize @bullet -@item @b{str9x flash_config} <@var{bank}> <@var{BBSR}> <@var{NBBSR}> -<@var{BBADR}> <@var{NBBADR}> -@cindex str9x flash_config -Configure str9 flash controller. -@smallexample -eg. str9x flash_config 0 4 2 0 0x80000 -This will setup -BBSR - Boot Bank Size register -NBBSR - Non Boot Bank Size register -BBADR - Boot Bank Start Address register -NBBADR - Boot Bank Start Address register -@end smallexample -@end itemize - -@subsection STR9 option byte configuration -@cindex STR9 option byte configuration -@itemize @bullet -@item @b{str9xpec options_cmap} <@var{num}> <@option{bank0}|@option{bank1}> -@cindex str9xpec options_cmap -configure str9 boot bank. -@item @b{str9xpec options_lvdthd} <@var{num}> <@option{2.4v}|@option{2.7v}> -@cindex str9xpec options_lvdthd -configure str9 lvd threshold. -@item @b{str9xpec options_lvdsel} <@var{num}> <@option{vdd}|@option{vdd_vddq}> -@cindex str9xpec options_lvdsel -configure str9 lvd source. -@item @b{str9xpec options_lvdwarn} <@var{bank}> <@option{vdd}|@option{vdd_vddq}> -@cindex str9xpec options_lvdwarn -configure str9 lvd reset warning source. -@end itemize - -@subsection STM32x specific commands -@cindex STM32x specific commands - -These are flash specific commands when using the stm32x driver. -@itemize @bullet -@item @b{stm32x lock} <@var{num}> -@cindex stm32x lock -lock stm32 device. -@item @b{stm32x unlock} <@var{num}> -@cindex stm32x unlock -unlock stm32 device. -@item @b{stm32x options_read} <@var{num}> -@cindex stm32x options_read -read stm32 option bytes. -@item @b{stm32x options_write} <@var{num}> <@option{SWWDG}|@option{HWWDG}> -<@option{RSTSTNDBY}|@option{NORSTSTNDBY}> <@option{RSTSTOP}|@option{NORSTSTOP}> -@cindex stm32x options_write -write stm32 option bytes. -@item @b{stm32x mass_erase} <@var{num}> -@cindex stm32x mass_erase -mass erase flash memory. -@end itemize - -@page -@section Architecture Specific Commands -@cindex Architecture Specific Commands - -@subsection ARMV4/5 specific commands -@cindex ARMV4/5 specific commands - -These commands are specific to ARM architecture v4 and v5, like all ARM7/9 systems -or Intel XScale (XScale isn't supported yet). -@itemize |