2.7.1. Comparator access size

The access size field of the ETMACTR indicates the size of the address being monitored:

Instruction address comparisons

When an address comparator is configured to perform instruction address matching, the access size field must be set to correspond to the instruction set:

  • access size word for the ARM instruction set

  • access size halfword for the Thumb and ThumbEE instruction sets

  • access size byte for the Jazelle instruction set.

Data address comparisons

When a single address comparator is configured to perform data address comparisons the access size field is used generate a match when the byte, halfword or word at the selected address matches, even if the 32-bit address in the ETMACVR does not match completely.

For more information about the behavior of data address comparators see Operation of data value comparators.

While unaligned transfers are correctly monitored, the address being monitored cannot itself be unaligned. If the size field is set to b01, halfword data, the address comparator value must be halfword-aligned. If the size field is set to b11, word data, the address must be word-aligned.

Note

  • For Instruction Address comparisons, no filtering is performed on the size of the access itself. A single address comparator matches if the value in the ETMACVR matches the address of the access, regardless of the setting of the size field. Similarly, no filtering is performed based on the actual instruction set in use. However the size field must be set correctly for the instruction set in use.

  • When an instruction address comparison must match from multiple instruction sets, the field size must be set to largest instruction size required. For example, to match on word (ARM) or halfword (Thumb) instructions, set the size field to word. This applies to single address comparisons and address range comparisons.

The behavior of the access size field depends on the ETM architecture version, as described in the following sections:

Note

Compilers often choose to use a word transfer to access bytes or halfwords. For example, a data structure is usually copied using word transfers, regardless of whether it contains byte or halfword quantities. In ETMv3.0 and earlier, a byte at address 0x1003, when accessed as part of a word transfer at 0x1000, does not match an address comparator programmed for address 0x1003, because the address the ETM is comparing against is 0x1000. See Figure 2.20 for an example.

Copyright © 1999-2002, 2004-2009, 2011 ARM Limited. All rights reserved.ARM IHI 0014Q
Non-ConfidentialID101211