#### 21.3.1 ARM

`target rdi` dev
  ARM Angel monitor, via RDI library interface to ADP protocol. You may use this target to communicate with both boards running the Angel monitor, or with the EmbeddedICE JTAG debug device.

`target rdp` dev
  ARM Demon monitor.

gdb provides the following ARM-specific commands:

`set arm disassembler`
  This commands selects from a list of disassembly styles. The `"std"` style is the standard style.
`show arm disassembler`
  Show the current disassembly style.
`set arm apcs32`
  This command toggles ARM operation mode between 32-bit and 26-bit.
`show arm apcs32`
  Display the current usage of the ARM 32-bit mode.
`set arm fpu` fputype
  This command sets the ARM floating-point unit (FPU) type. The argument fputype can be one of these:
  `auto`
    Determine the FPU type by querying the OS ABI.
  `softfpa`
    Software FPU, with mixed-endian doubles on little-endian ARM processors.
  `fpa`
    GCC-compiled FPA co-processor.
  `softvfp`
    Software FPU with pure-endian doubles.
  `vfp`
    VFP co-processor.
`show arm fpu`
  Show the current type of the FPU.
`set arm abi`
  This command forces gdb to use the specified ABI.
`show arm abi`
  Show the currently used ABI.
`set arm fallback-mode (arm|thumb|auto)`
  gdb uses the symbol table, when available, to determine whether instructions are ARM or Thumb. This command controls gdb's default behavior when the symbol table is not available. The default is ‘`auto`’, which causes gdb to use the current execution mode (from the `T` bit in the `CPSR` register).
`show arm fallback-mode`
  Show the current fallback instruction mode.
`set arm force-mode (arm|thumb|auto)`
  This command overrides use of the symbol table to determine whether instructions are ARM or Thumb. The default is ‘`auto`’, which causes gdb to use the symbol table and then the setting of ‘`set arm fallback-mode`’.
`show arm force-mode`
  Show the current forced instruction mode.
`set debug arm`
  Toggle whether to display ARM-specific debugging messages from the ARM target support subsystem.
`show debug arm`
  Show whether ARM-specific debugging messages are enabled.

The following commands are available when an ARM target is debugged using the RDI interface:

`rdilogfile` [file]
  Set the filename for the ADP (Angel Debugger Protocol) packet log. With an argument, sets the log file to the specified file. With no argument, show the current log file name. The default log file is `rdi.log`.
`rdilogenable` [arg]
  Control logging of ADP packets. With an argument of 1 or `"yes"` enables logging, with an argument 0 or `"no"` disables it. With no arguments displays the current setting. When logging is enabled, ADP packets exchanged between gdb and the RDI target device are logged to a file.
`set rdiromatzero`
  Tell gdb whether the target has ROM at address 0. If on, vector catching is disabled, so that zero address can be used. If off (the default), vector catching is enabled. For this command to take effect, it needs to be invoked prior to the `target rdi` command.
`show rdiromatzero`
  Show the current setting of ROM at zero address.
`set rdiheartbeat`
  Enable or disable RDI heartbeat packets. It is not recommended to turn on this option, since it confuses ARM and EPI JTAG interface, as well as the Angel monitor.
`show rdiheartbeat`
  Show the setting of RDI heartbeat packets.

`target sim` [simargs]`...`
  The gdb ARM simulator accepts the following optional arguments.
  `--swi-support=`type
    Tell the simulator which SWI interfaces to support. type may be a comma separated list of the following values. The default value is `all`.
    `none`
    `demon`
    `angel`
    `redboot`
    `all`