Provided by: mspdebug_0.22-2build2_amd64 bug

NAME

       MSPDebug - debugging tool for MSP430 MCUs

SYNOPSIS

       mspdebug [options] driver [command ...]

DESCRIPTION

       MSPDebug  is  a command-line tool designed for debugging and programming the MSP430 family
       of MCUs.  It  supports  the  eZ430-F2013,  eZ430-RF2500,  Launchpad,  Chronos,  FET430UIF,
       GoodFET,  Olimex  MSP430-JTAG-TINY  and  MSP430-JTAG-ISO  programming  tools, as well as a
       simulation mode.

       When started with appropriate options, MSPDebug will attempt to connect to  the  debugging
       tool  specified  and identify the device under test. Once connected, the user is presented
       with a command prompt which can be used to reflash the device memory, inspect  memory  and
       registers, set registers, and control the CPU (single step, run and run to breakpoint).

       It  supports  a variety of file formats, described in the section BINARY FORMATS below. It
       can also be used as a remote stub for gdb(1).

       On startup, MSPDebug will look for a file called .mspdebug first in the current directory,
       and  then  in  the user's home directory. If either file exists, commands will be read and
       executed from this file before executing any other commands or  starting  the  interactive
       reader.

       Alternatively, a configuration file can be explicitly specified with the -C option.

COMMAND-LINE OPTIONS

       Command-line  options  accepted by MSPDebug are described below. If commands are specified
       on the end of the command-line, then they are executed after connecting to the device, and
       the  interactive  prompt  is  not  started.  Please  be  aware that commands consisting of
       multiple words need to be enclosed in quotation  marks,  otherwise  they  are  treated  as
       single  commands.  Thus the common prog command would be used as "prog main.elf".  See the
       section labelled COMMANDS for more information.

       -q     Start in quiet mode. See the "quiet" option described below.

       -v voltage
              Set the programming voltage. The voltage should  be  specified  as  an  integer  in
              millivolts. It defaults to 3000 (3.0 V).

       -j     Use JTAG instead of Spy-Bi-Wire to communicate with the MSP430. This option doesn't
              work with eZ430 or eZ430-RF2500 devices, which support Spy-Bi-Wire only.

       -d device
              Specify that the driver should connect via a  tty  device  rather  than  USB.   The
              supported  connection methods vary depending on the driver. See the section DRIVERS
              below for details.

       -U bus:device
              Specify a particular USB device to connect  to.  Without  this  option,  the  first
              device of the appropriate type is opened.

       -s serial
              Specify  a  particular  USB  device serial number to connect to. Use this option to
              distinguish between multiple devices of the same type.

       -n     Do not process the startup file (~/.mspdebug).

       -C file
              Specify an alternative configuration  file  (default  is  ~/.mspdebug).  If  -n  is
              specified as well, no file will be read.

       --long-password
              When  using  the  flash-bsl  driver,  send  a  32-byte  BSL password instead of the
              standard 16-byte password.

       --help Display a brief help message and exit.

       --fet-list
              Display a list of chips supported by the FET  driver  (the  driver  used  for  UIF,
              RF2500 and Olimex devices).

       --fet-force-id string
              When  using  a FET device, force the connected chip to be recognised by MSPDebug as
              one of the given type during initialization. This overrides the device ID  returned
              by  the  FET.  The  given  string  should  be a chip name in long form, for example
              "MSP430F2274".

       --fet-skip-close
              When using a FET device, skip the JTAG close procedure  when  disconnecting.   With
              some boards, this removes the need to replug the debugger after use.

       --usb-list
              List available USB devices and exit.

       --force-reset
              When  using a FET device, always send a reset during initialization. By default, an
              initialization without reset will be tried first.

       --allow-fw-update
              When using a V3 FET device via the TI library,  allow  the  library  to  perform  a
              firmware update if the FET firmware is incompatible with the library.

       --require-fw-update image.txt
              When  using  a  V3  FET  device, or certain Olimex devices, force a firmware update
              using the given firmware image. The firmware format depends on the driver.

       --version
              Show program version and copyright information.

       --embedded
              Start mspdebug as an embedded subprocess. See the  documentation  accompanying  the
              source release for more information on embedded mode.

DRIVERS

       A  driver  name  must  be  specified on the command line for MSPDebug to connect to. Valid
       driver names are listed here.

       rf2500 Connect to an eZ430-RF2500, Launchpad or Chronos device.  Only  USB  connection  is
              supported.

       olimex Connect  to  an  Olimex  MSP430-JTAG-TINY  device.  Both  USB  and  tty  access are
              supported.

       olimex-v1
              Connect to an Olimex MSP430-JTAG-TINY (V1) device. Both  USB  and  tty  access  are
              supported.  This driver must be used instead of olimex if connecting to a V1 device
              via a tty interface.

       olimex-iso
              Connect to an Olimex MSP430-JTAG-ISO device. Both USB and tty access are supported.

       olimex-iso-mk2
              Connect to an Olimex MSP430-JTAG-ISO-MK2  device.  Both  USB  and  tty  access  are
              supported.

       sim    Do  not connect to any hardware device, but instead start in simulation mode. A 64k
              buffer is allocated to simulate the device memory.

              During simulation, addresses below 0x0200 are assumed to be IO memory.   Programmed
              IO  writes  to  and  from  IO  memory are handled by the IO simulator, which can be
              configured and controlled with the simio command, described below.

              This mode is intended for testing of  changes  to  MSPDebug,  and  for  aiding  the
              disassembly  of  MSP430  binaries (as all binary and symbol table formats are still
              usable in this mode).

       uif    Connect to an eZ430-F2013 or a FET430UIF device. The device argument should be  the
              filename  of  the  appropriate  tty  device. The TI serial converter chips on these
              devices are supported by newer versions of the Linux kernel, and should  appear  as
              /dev/ttyXX when attached.

              USB  connection  is  supported  for  this  driver.  The USB interface chip in these
              devices is a TI3410, which requires a firmware download on startup.  MSPDebug  will
              search  for  a  file called ti_3410.fw.ihex in the configured library directory and
              the current directory. You can specify an alternate location for the file  via  the
              MSPDEBUG_TI3410_FW environment variable.

       uif-bsl
              Connect  to the bootloader on a FET430UIF device. These devices contain MSP430F1612
              chips. By sending a  special  command  sequence,  you  can  obtain  access  to  the
              bootloader and inspect memory on the MSP430F1612 in the programming device itself.

              Currently,  only  memory  read/write  and  erase are supported. CPU control via the
              bootloader is not possible.

       flash-bsl
              Connect to the built-in bootloader in MSP430 devices with flash bootloader  memory.
              Devices  with  ROM  bootloaders require another driver. Currently, this driver must
              mass-erase the device in order to gain access. Read, write,  and  erase  operations
              are supported.

              USB connection is not supported for this driver. Connection is via serial port, and
              bootloader entry is accomplished via the RTS and DTR lines.   Connect  RTS  to  the
              device's  TEST  pin  and  DTR  to  the device's RST pin.  Use an appropriate serial
              level-shifter to make the connection, if necessary.  If connecting to a device with
              non-multiplexed JTAG pins, connect RTS to the device's TCK pin via an inverter.

       gdbc   GDB  client  mode. Connect to a server which implements the GDB remote protocol and
              provide an interface to it. To use this  driver,  specify  the  remote  address  in
              hostname:port format using the -d option.

       tilib  Use  the  Texas  Instruments  MSP430.DLL  to  access  the  device. The library file
              (MSP430.DLL for Windows, libmsp430.so for Unix-like systems) must be present in the
              dynamic loader search path.

              USB  connection is not supported for this driver. This driver supports watchpoints.
              Note that the -d option for this driver passes its argument straight through to the
              library's  MSP430_Initialize  function.  Any  special  argument  supported  by that
              function is therefore accessible via the -d option.

       goodfet
              Connect to a GoodFET device. JTAG mode  must  be  used,  and  only  TTY  access  is
              supported. This device can be used for memory access (read, erase and program), but
              CPU control is limited. The CPU may be halted, run and reset, but  register  access
              and breakpoints aren't supported.

       pif    Connect  to  a  parallel-port  JTAG  controller.  Currently,  this  driver  is only
              supported for Linux. A parallel port device must be specified via the -d option.

COMMANDS

       MSPDebug can accept commands either through an interactive  prompt,  or  non-interactively
       when specified on the command line. The supported commands are listed below.

       Commands  take arguments separated by spaces. Any text string enclosed in double-quotation
       marks is considered to be a single argument, even if it contains space characters.  Within
       a quoted string, the usual C-style backslash substitutions can be used.

       Commands can be specified by giving the first few characters of the command name, provided
       that the prefix  is  unambiguous.  Some  commands  support  automatic  repeat.  For  these
       commands,  pressing  enter  at the reader prompt without typing anything will cause repeat
       execution.

       = expression
              Evaluate an address expression and show both its value, and  the  result  when  the
              value  is  looked  up in reverse in the current symbol table. This result is of the
              form symbol+offset, where symbol is the name of the nearest  symbol  not  past  the
              address in question.

              See  the  section  marked ADDRESS EXPRESSIONS for more information on the syntax of
              expressions.

       alias  Show a list of defined command aliases.

       alias name
              Remove a previously defined command alias.

       alias name command
              Define a command alias. The text command will be substituted for name when  looking
              up  commands.  The  given command text may contain a command plus arguments, if the
              entire text  is  wrapped  in  quotes  when  defining  the  alias.  To  avoid  alias
              substitution  when  interpreting  commands,  prefix the command with \ (a backslash
              character).

       break  Show a list of active breakpoints. Breakpoints can be added and  removed  with  the
              setbreak  and  delbreak commands. Each breakpoint is numbered with an integer index
              starting at 0.

       cgraph address length [address]
              Construct the call graph of all functions contained  or  referenced  in  the  given
              range  of memory. If a particular function is specified, then details for that node
              of the graph are displayed. Otherwise, a summary of all nodes is displayed.

              Information from the symbol table is used for hinting at the possible locations  of
              function  starts. Any symbol which does not contain a "."  is considered a possible
              function start.

              Callers and callee names are shown prefixed by a "*"  where  the  transition  is  a
              tail-call type transition.

       delbreak [index]
              Delete  one  or  all  breakpoints. If an index is given, the selected breakpoint is
              deleted. Otherwise, all breakpoints are cleared.

       dis address [length]
              Dissassemble a section of memory. Both arguments may be address expressions. If  no
              length is specified, a section of the default length (64 bytes) is disassembled and
              shown.

              If symbols are available, then all addresses used as operands are  translated  into
              symbol+offset form.

              This  command  supports  repeat execution. If repeated, it continues to disassemble
              another block of memory following that last printed.

       erase [all|segment|segrange] [address] [size] [segrange]
              Erase the device under test. With no arguments, all code memory is erased (but  not
              information  or  boot  memory).  With the argument "all", a mass erase is performed
              (the results may depend on  the  state  of  the  LOCKA  bit  in  the  flash  memory
              controller).

              Specify  "segment"  and  a  memory  address  to  erase an individual flash segment.
              Specify "segrange", an address, size and segment size to erase an arbitrary set  of
              contiguous segments.

       exit   Exit from MSPDebug.

       fill address length b0 [b1 b2 ...]
              Fill the memory region of size length starting at address with the pattern of bytes
              given (specified in hexadecimal). The pattern will be repeated without  padding  as
              many times as necessary without exceeding the bounds of the specified region.

       gdb [port]
              Start a GDB remote stub, optionally specifying a TCP port to listen on.  If no port
              is given, the default port is controlled by the option gdb_default_port.

              MSPDebug will wait for a connection on this port, and then act as a GDB remote stub
              until GDB disconnects.

              GDB's  "monitor"  command  can  be  used  to  issue  MSPDebug  commands via the GDB
              interface. Supplied commands are executed non-interactively, and the output is sent
              back to be displayed in GDB.

       help [command]
              Show  a  brief listing of available commands. If an argument is specified, show the
              syntax for the given command. The help text shown when no argument is given is also
              shown when MSPDebug starts up.

       hexout address length filename
              Read  the  specified section of the device memory and save it to an Intel HEX file.
              The address and length arguments may both be address expressions.

              If the specified file already exists, then it will be overwritten. If you  need  to
              dump  memory  from  several disjoint memory regions, you can do this by saving each
              section to a separate file. The resulting files can then be  concatenated  together
              to form a single valid HEX file.

       isearch address length [options ...]
              Search  over  the given range for an instruction which matches the specified search
              criteria. The search may be narrowed by specifying one or  more  of  the  following
              terms:

              opcode opcode
                     Match the specified opcode. Byte/word specifiers are not recognised, as they
                     are specified with other options.

              byte   Match only byte operations.

              word   Match only word operations.

              aword  Match only address-word (20-bit) operations.

              jump   Match only jump instructions (conditional and unconditional jumps,  but  not
                     instructions such as BR which load the program counter explicitly).

              single Match only single-operand instructions.

              double Match only double-operand instructions.

              noarg  Match only instructions with no arguments.

              src address
                     Match instructions with the specified value in the source operand. The value
                     may be given as  an  address  expression.  Specifying  this  option  implies
                     matching of only double-operand instructions.

              dst address
                     Match instructions with the specified value in the destination operand. This
                     option implies that no-argument instructions are not matched.

              srcreg register
                     Match instructions using the specified register in the source operand.  This
                     option implies matching of only double-operand instructions.

              dstreg register
                     Match  instructions using the specified register in the destination operand.
                     This option implies that no-argument instructions are not matched.

              srcmode mode
                     Match instructions using the specified mode in the source operand. See below
                     for a list of modes recognised. This option implies matching of only double-
                     operand instructions.

              dstmode mode
                     Match instructions using the specified mode in the destination operand.  See
                     below for a list of modes. This option implies that no-argument instructions
                     are not matched.

              For single-operand instructions, the operand is considered to  be  the  destination
              operand.

              The seven addressing modes used by the MSP430 are represented by single characters,
              and are listed here:

              R      Register mode.

              I      Indexed mode.

              S      Symbolic mode.

              &      Absolute mode.

              @      Register-indirect mode.

              +      Register-indirect mode with auto-increment.

              #      Immediate mode.

       load filename
              Program the device under test using the binary file supplied. This command is  like
              prog, but it does not load symbols or erase the device before programming.

              The CPU is reset and halted before and after programming.

       load_raw filename address
              Write the data contained in a raw binary file to the given memory address.

              The CPU is reset and halted before and after programming.

       md address [length]
              Read  the  specified  section  of device memory and display it as a canonical-style
              hexdump. Both arguments may be address expressions. If no length  is  specified,  a
              section of the default length (64 bytes) is shown.

              The output is split into three columns. The first column shows the starting address
              for the line. The second column lists the hexadecimal  values  of  the  bytes.  The
              final column shows the ASCII characters corresponding to printable bytes, and . for
              non-printing characters.

              This command supports repeat execution. If repeated, it continues to print  another
              block of memory following that last printed.

       mw address bytes ...
              Write  a sequence of bytes at the given memory address. The address given may be an
              address expression. Bytes values are two-digit  hexadecimal  numbers  separated  by
              spaces.

              Unless  used  in the simulation mode, this command can only be used for programming
              flash memory.

       opt [name] [value]
              Query, set or list option variables. MSPDebug's behaviour can be  configured  using
              option variables, described below in the section OPTIONS.

              Option  variables  may  be of three types: boolean, numeric or text. Numeric values
              may be specified as address expressions.

              With no arguments, this command displays all available option variables.  With just
              an option name as its argument, it displays the current value of that option.

       power info
              Show  basic  power  statistics  gathered  over the last few sessions. This includes
              total charge consumption, run time and average current.

       power clear
              Clear all recorded power statistics.

       power all [granularity]
              Show sample data gathered  over  all  sessions.  An  optional  granularity  can  be
              specified,  in  microseconds.  For  each  time slice, relative session time, charge
              consumption, current consumption and approximate code location are shown.

       power session N [granularity]
              Same as power all, except that data is shown only for the Nth session.

       power export-csv N filename
              Export raw sample data for the Nth session to the given file  in  CSV  format.  For
              each  line,  the  columns  are,  in  order:  relative time in microseconds, current
              consumption in microamps, memory address.

       power profile
              If a symbol table is loaded, compile and correlate all gathered power data  against
              the  symbol  table.  A  single  table  is  then shown listing, per function, charge
              consumption, run time and average current. The functions are  listed  in  order  of
              charge consumption (biggest consumers first).

       prog filename
              Erase  and reprogram the device under test using the binary file supplied. The file
              format will be auto-detected and may be any of the supported file formats.

              In the case of a file containing symbols, symbols will be automatically loaded from
              the  file  into  the  symbol  table  (discarding any existing symbols), if they are
              present.

              The CPU is reset and halted before and after programming.

       read filename
              Read commands from the given file, line by line and process each  one.   Any  lines
              whose  first  non-space  character  is  #  are  ignored.  If  an error occurs while
              processing a command, the rest of the file is not processed.

       regs   Show the current value of all CPU registers in the device under test.

       reset  Reset (and halt) the CPU of the device under test.

       run    Start running the CPU. The interactive command prompt is blocked when  the  CPU  is
              started and the prompt will not appear again until the CPU halts. The CPU will halt
              if it encounters a breakpoint, or if Ctrl-C is pressed by the user.

              After the CPU halts, the current register values are shown as well as a disassembly
              of the first few instructions at the address selected by the program counter.

       save_raw address length filename
              Save  a region of memory to a raw binary file. The address and length arguments may
              both be address expressions.

              If the specified file already exists, then it will be overwritten.

       set register value
              Alter the value of a register. Registers are specified as numbers  from  0  through
              15.  Any leading non-numeric characters are ignored (so a register may be specified
              as, for example, "R12"). The value argument is an address expression.

       setbreak address [index]
              Add a new breakpoint. The breakpoint location is an address expression. An optional
              index  may  be  specified,  indicating that this new breakpoint should overwrite an
              existing slot. If no index is specified, then the breakpoint will be stored in  the
              next unused slot.

       setwatch address [index]
              Add  a  new  watchpoint.  The  watchpoint location is an address expression, and an
              optional index may be specified.  Watchpoints  are  considered  to  be  a  type  of
              breakpoint  and  can be inspected or removed using the break and delbreak commands.
              Note that not all drivers support watchpoints.

       setwatch_r address [index]
              Add a watchpoint which is triggered only on read access.

       setwatch_w address [index]
              Add a watchpoint which is triggered only on write access.

       simio add class name [args ...]
              Add a new peripheral to the IO simulator. The class parameter may  be  any  of  the
              peripheral  types  named  in  the  output  of  the  simio classes command. The name
              parameter is a unique name assigned by the user to this peripheral instance, and is
              used with other commands to refer to this instance of the peripheral.

              Some  peripheral  classes take arguments upon creation. These are documented in the
              output to the simio help command.

       simio classes
              List the names of the different types of peripherals which  may  be  added  to  the
              simulator. You can use the simio help command to obtain more information about each
              peripheral type.

       simio config name param [args ...]
              Configure or perform some action on a peripheral instance. The  param  argument  is
              specific  to  the  peripheral  type.  A list of valid configuration commands can be
              obtained by using the simio help command.

       simio del name
              Remove a previously added peripheral instance. The name argument should be the name
              of the peripheral that was assigned with the simio add command.

       simio devices
              List all peripheral instances currently attached to the simulator, along with their
              types and interrupt status. You can  obtain  more  detailed  information  for  each
              instance with the simio info command.

       simio help class
              Obtain more information about a peripheral class. The documentation given will list
              constructor arguments and configuration parameters for the device type.

       simio info name
              Display detailed status information  for  a  particular  peripheral.  The  type  of
              information displayed is specific to each type of peripheral.

       step [count]
              Step  the  CPU  through  one or more instructions. After stepping, the new register
              values are displayed, as well as a disassembly of the instructions at  the  address
              selected by the program counter.

              An optional count can be specified to step multiple times. If no argument is given,
              the CPU steps once. This command supports repeat execution.

       sym clear
              Clear the symbol table, deleting all symbols.

       sym set name value
              Set or alter the value of a symbol. The value given may be an address expression.

       sym del name
              Delete the given symbol from the symbol table.

       sym import filename
              Load symbols from the specified file and add them to the symbol  table.   The  file
              format  will be auto-detected and may be either ELF32 or a BSD-style symbol listing
              (like the output from nm(1)).

              Symbols can be combined from many sources, as the syms command adds to the existing
              symbol table without discarding existing symbols.

       sym import+ filename
              This  command is similar to sym import, except that the symbol table is not cleared
              first. By using this command, symbols from multiple sources can be combined.

       sym export filename
              Save all symbols currently defined to the given file. The symbols are  saved  as  a
              BSD-style  symbol table. Note that symbol types are not stored by MSPDebug, and all
              symbols are saved as type t.

       sym find [regex]
              Search for symbols. If a regular expression is given, then all symbols matching the
              expression are printed. If no expression is specified, then the entire symbol table
              is listed.

       sym rename regex string
              Rename symbols by searching for those matching the  given  regular  expression  and
              substituting  the  given  string  for  the matched portion. The symbols renamed are
              displayed, as well as a total count of all symbols renamed.

       verify filename
              Compare the contents  of  the  given  binary  file  to  the  chip  memory.  If  any
              differences are found, a message is printed for the first mismatched byte.

       verify_raw filename address
              Compare  the  contents  of  a  raw  binary  file  to the device memory at the given
              address. If any  differences  are  found,  a  message  is  printed  for  the  first
              mismatched byte.

BINARY FORMATS

       The following binary/symbol formats are supported by MSPDebug:

              ELF32
              COFF
              Intel HEX (program only)
              BSD symbol table (symbols only)
              TI Text (program only)
              SREC (program only)

IO SIMULATOR

       The  IO  simulator  subsystem  consists  of  a  database  of device classes, and a list of
       instances of those  classes.  Each  device  class  has  a  different  set  of  constructor
       arguments,  configuration  parameters and information which may be displayed. This section
       describes the operation of the available device classes in detail.

       In the list below, each device class is listed, followed by its constructor arguments.

       gpio   Digital IO port simulator. This device simulates any of the digital ports  with  or
              without interrupt capability. It has the following configuration parameters:

              base address
                     Set  the  base  address for this port. Note that for ports without interrupt
                     capability, the  resistor  enable  port  has  a  special  address  which  is
                     computable from the base address.

              irq vector
                     Enable  interrupt  functionality  for  this  port by specifying an interrupt
                     vector number.

              noirq  Disable interrupt functionality for this port.

              verbose
                     Print a state change message every time the port output changes.

              quiet  Don't print anything when the port state changes (the default).

              set pin value
                     Set the input pin state for the given pin on this port.  The  pin  parameter
                     should  be  an index between 0 and 7. The value should be either zero (for a
                     low state) or non-zero (for a high state).

       hwmult This peripheral simulates  the  hardware  multiplier.  It  has  no  constructor  or
              configuration parameters, and does not provide any extended information.

       timer [size]
              This  peripheral  simulators  Timer_A  modules, and can be used to simulate Timer_B
              modules, provided that the extended features aren't required.

              The constructor takes a size argument  specifying  the  number  of  capture/compare
              registers in this peripheral instance. The number of such registers may not be less
              than 2, or greater than 7.

              The IO addresses and IRQs used are configurable. The default IO addresses used  are
              those specified for Timer_A in the MSP430 hardware documentation.

              base address
                     Alter  the  base  IO address. By default, this is 0x0160. By setting this to
                     0x0180, a Timer_B module may be simulated.

              irq0 number
                     Set the TACCR0 interrupt vector number. By default, this is interrupt vector
                     9.    This   interrupt  is  self-clearing,  and  higher  priority  than  the
                     TACCR1/TAIFG vector.

              irq1 number
                     Set the TACCR1/TAIFG interrupt vector. By default, this is interrupt  vector
                     8.

              iv address
                     Alter  the  address  of  the  interrupt vector register. By default, this is
                     0x012E.  By setting this to 0x011E, a Timer_B module may be simulated.

              set channel value
                     When Timer_A is used in capture mode, the CCI bit in each  capture  register
                     reflects  the  state of the corresponding input pin, and can't be altered in
                     software. This configuration command can be  used  to  simulate  changes  in
                     input  pin  state,  and  will  trigger  the  corresponding interrupts if the
                     peripheral is so configured.

       tracer [history-size]
              The tracer peripheral is a debugging device. It can  be  used  to  investigate  and
              record  the  IO  activity of a running program, to benchmark execution time, and to
              simulate interrupts.

              The information displayed by the tracer gives a running count of clock cycles  from
              each of the system clocks, and an instruction count. A list of the N most recent IO
              events is also displayed (this is configurable via the history-size argument of the
              constructor).  Each  IO event is timestamped by the number of MCLK cycles that have
              elapsed since the last reset of the device's counter.

              The IO events that it records consist of programmed IO reads and writes,  interrupt
              acceptance,  and  system  resets.  As  well  as keeping the IO events in a rotating
              buffer, the tracer can be configured to display the events as they occur.

              Note that since clock cycles don't  advance  while  the  CPU  isn't  running,  this
              peripheral can be used to calculate execution times for blocks of code. This can be
              achieved by setting a breakpoint at the end of the code block, setting the  program
              counter  to  the start of the code block, clearing the tracer and running the code.
              After the breakpoint is reached, the  information  displayed  by  the  tracer  will
              contain a count of MCLK cycles elapsed during the last run.

              The configuration parameters for this device class are:

              verbose
                     Start  displaying  IO events as they occur, as well as recording them in the
                     rotating buffer.

              quiet  Stop displaying IO events as they occur, and just record them in the buffer.

              trigger irq
                     Signal an interrupt request to the CPU.  This  request  will  remain  raised
                     until accepted by the CPU or cleared by the user.

              untrigger
                     Clear a signalled interrupt request.

              clear  Reset  the  clock  cycle and instruction counts to 0, and clear the IO event
                     history.

       wdt    This peripheral simulates the Watchdog Timer+, which can be used in software either
              as a watchdog or as an interval timer. It has no constructor arguments.

              The  simulated  state of the NMI/RST# pin can be controlled through a configuration
              parameter. Note that if this pin state is held low with the pin mode selected as  a
              reset (the default), the CPU will not run.

              The  extended  information for this peripheral shows all register states, including
              the hidden counter register. Configuration parameters are:

              nmi state
                     Set the NMI/RST# pin state. The argument should be zero to  indicate  a  low
                     state or non-zero for a high state.

              irq irq
                     Select  the  interrupt vector for interval timer mode. The default is to use
                     interrupt vector 10.

ADDRESS EXPRESSIONS

       Any command which accepts a memory address, length or register value as an argument may be
       given an address expression. An address expression consists of an algebraic combination of
       values.

       An address value may be either a symbol name, a hex  value  preceded  with  the  specifier
       "0x",  a  decimal value preceded with the specifier "0d", or a number in the default input
       radix (without a specifier). See the option iradix for more information.

       The operators recognised are the usual algebraic operators: +,  -,  *,  /,  %,  (  and  ).
       Operator  precedence is the same as in C-like languages, and the - operator may be used as
       a unary negation operator.

       The following are all valid examples of address expressions:

       2+2
       table_start + (elem_size + elem_pad)*4
       main+0x3f
       __bss_end-__bss_start

OPTIONS

       MSPDebug's behaviour can be configured via the following variables:

       color (boolean)
              If true, MSPDebug will colorize debugging output.

       fet_block_size (numeric)
              Change the size of the buffer  used  to  transfer  memory  to  and  from  the  FET.
              Increasing  the  value  from the default of 64 will improve transfer speed, but may
              cause problems with some chips.

       enable_bsl_access (boolean)
              If set, some drivers will allow erase/program access to flash  BSL  memory.  If  in
              doubt, do not enable this.

       enable_locked_flash_access (boolean)
              If  set,  some drivers will allow erase/program access to the info A segment. If in
              doubt, do not enable this. Currently, the tilib and uif  drivers  are  affected  by
              this option.

       gdb_default_port (numeric)
              This  option  controls  the  default TCP port for the GDB server, if no argument is
              given to the "gdb" command.

       gdb_loop (boolean)
              Automatically restart the GDB server after disconnection. If this  option  is  set,
              then  the  GDB  server  keeps running until an error occurs, or the user interrupts
              with Ctrl+C.

       gdbc_xfer_size (numeric)
              Maximum size of memory transfers for the GDB client.  Increasing  this  value  will
              result in faster transfers, but may cause problems with some servers.

       iradix (numeric)
              Default  input  radix  for  address  expressions.  For address values with no radix
              specifier, this value gives the input radix, which is 10 (decimal) by default.

       quiet (boolean)
              If set, MSPDebug will  supress  most  of  its  debug-related  output.  This  option
              defaults  to  false,  but  can  be  set  true on start-up using the -q command-line
              option.

ENVIRONMENT

       MSPDEBUG_TI3410_FW
              Specifies the location of TI3410 firmware, for raw USB access to FET430UIF or eZ430
              devices.  This  variable  should  contain  the path to an Intel HEX file containing
              suitable firmware for the TI3410.

FILES

       ~/.mspdebug
              File containing commands to be executed on startup.

       ti_3410.fw.ihex
              Firmware image for the TI3410 USB interface chip. This file is  only  required  for
              raw USB access to FET430UIF or eZ430 devices.

SEE ALSO

       nm(1), gdb(1), objcopy(1)

BUGS

       If  you  find any bugs, you should report them to the author at dlbeer@gmail.com. It would
       help if you could include a transcript of an MSPDebug session illustrating the program, as
       well as any relevant binaries or other files.

COPYRIGHT

       Copyright (C) 2009-2013 Daniel Beer <dlbeer@gmail.com>

       MSPDebug  is  free software, distributed under the terms of the GNU General Public license
       (version 2 or later). See the file COPYING included with the source code for more details.