A.4.5. Register

This group enables you to define memory-mapped registers provided at the board or ASIC level. Each register is named and typed and can be subdivided into bit fields (any number of bits) which act as subregisters.

Register group settings

The Register group includes a base group called Default, but typically you create one or more named register groups. The group includes the following settings:

Bit_fields

This group contains settings to define bit fields within the registers.

Start

The base address of the register. If the register is mapped using a memory block, this is the offset from that register (see Base).

Length

The length of the register. If Length is set by a register, this must be 0 or the amount to add to that register.

Base

This specifies how to interpret Start. You can select the value from a context menu. This context menu contains the option Absolute, and is also populated with the names of any memory blocks that you have configure in the Memory_block group:

  • If you select Absolute, then Start is the absolute memory address of the register.

  • If you select the name of a memory block, then Start is an offset from the base address of that memory block.

Memory_type

The type of memory depends on the device type. The default is to map to data space. Otherwise, a memory space can be specified. Set to default for ARM architecture-based targets.

Type

Specifies how to interpret the value contained in the register. The type names are as in the C language.

Read_only

If set to True, the register is read-only and the debugger does not let you write to it. Otherwise, you can modify the value using the Registers view in the Code window and using CLI expressions.

Write_only

If set to True, the register cannot be read. The debugger does not attempt to query the hardware for the current value when the Registers view is opened.

Volatile

If set to True, the register value can change without the debugger explicitly modifying it. For example, a hardware timer continues to count even when the processor is halted.

Enum

The name of a Register_enum block that maps a register value to a textual string describing the value.

Gui_name

The name of the register as it appears in the Registers view. If no name is specified here, then the Register group name is displayed.

Register Bit_fields group settings

The Register Bit_fields group contains a Default group, but typically you create one or more named Bit_fields groups. The group contains the following settings:

Position

Bit position from 0 (LSbit).

Size

Size in bits.

Signed

Set to True if signed, otherwise set to False.

Enum

Enumeration name to show values in the Registers view, derived from the Register_enum group.

Read_only

Set to True if read-only (cannot modify).

Volatile

Indicates that the register has side effects when it is read or written. A common read side effect is loss of data (when pulled from a UART, for example). A common write side effect is for the device to take some action on write (triggering a DMA, for example). This information is used in the Registers view. Right-click to see available options.

Gui_name

Optional name for showing in Registers view. If no name is specified here, then the bit field group name is displayed.

See also

Copyright © 2002-2011 ARM. All rights reserved.ARM DUI 0182N
Non-ConfidentialID052111