OpenRISC 1000 - Debugging with GDB
Description: Debugging with GDB

Next: PowerPC Embedded, Previous: MIPS Embedded, Up: Embedded Processors

#### 21.3.6 OpenRISC 1000

See OR1k Architecture document (www.opencores.org) for more information about platform and commands.

`target jtag jtag://`host`:`port
  Connects to remote JTAG server. JTAG remote server can be either an or1ksim or JTAG server, connected via parallel port to the board.

  Example: `target jtag jtag://localhost:9999`

`or1ksim` command
  If connected to `or1ksim` OpenRISC 1000 Architectural Simulator, proprietary commands can be executed.

`info or1k spr`
  Displays spr groups.
`info or1k spr` group
`info or1k spr` groupno
  Displays register names in selected group.
`info or1k spr` group register
`info or1k spr` register
`info or1k spr` groupno registerno
`info or1k spr` registerno
  Shows information about specified spr register.

`spr` group register value
`spr` register value
`spr` groupno registerno value
`spr` registerno value
  Writes value to specified spr register.

Some implementations of OpenRISC 1000 Architecture also have hardware trace. It is very similar to gdb trace, except it does not interfere with normal program execution and is thus much faster. Hardware breakpoints/watchpoint triggers can be set using:

`$LEA/$LDATA`
  Load effective address/data
`$SEA/$SDATA`
  Store effective address/data
`$AEA/$ADATA`
  Access effective address ($SEA or $LEA) or data ($SDATA/$LDATA)
`$FETCH`
  Fetch data

When triggered, it can capture low level data, like: `PC`, `LSEA`, `LDATA`, `SDATA`, `READSPR`, `WRITESPR`, `INSTR`.

`htrace` commands:

`hwatch` conditional
  Set hardware watchpoint on combination of Load/Store Effective Address(es) or Data. For example:

  `hwatch ($LEA == my_var) && ($LDATA < 50) || ($SEA == my_var) && ($SDATA >= 50)`

  `hwatch ($LEA == my_var) && ($LDATA < 50) || ($SEA == my_var) && ($SDATA >= 50)`

`htrace info`
  Display information about current HW trace configuration.
`htrace trigger` conditional
  Set starting criteria for HW trace.
`htrace qualifier` conditional
  Set acquisition qualifier for HW trace.
`htrace stop` conditional
  Set HW trace stopping criteria.
`htrace record [`data`]*`
  Selects the data to be recorded, when qualifier is met and HW trace was triggered.
`htrace enable`
`htrace disable`
  Enables/disables the HW trace.
`htrace rewind [`filename`]`
  Clears currently recorded trace data.

  If filename is specified, new trace file is made and any newly collected data will be written there.

`htrace print [`start`[`len`]]`
  Prints trace buffer, using current record configuration.
`htrace mode continuous`
  Set continuous trace mode.
`htrace mode suspend`
  Set suspend trace mode.