3.2 Program flow trace

If enabled, every executed branch instruction triggers this trace source. This is a more efficient way to reconstruct the program flow than by tracing every instruction.

Branch trace records have the following command syntax:

<time> <scale> [FD|FI|FR] (<inst_id>) <addr> <targ_addr> [A|T|X]

The fields have the following meanings:

<time>

Timestamp (decimal value).

<scale>

Unit for the previous field <time>. This is used for consistency with device-specific tarmac trace formats.

[FD|FI|FR]

This is a program flow change by:

  • A direct branch FD.

  • An indirect branch FI.

  • A return from exception FR.

<inst_id>

The tick count of this processor. This is equivalent to the number of instructions executed, except for certain instructions like WFI/WFE (decimal value).

<addr>

Address from where this instruction was fetched, in hexadecimal format (virtual address).

<targ_addr>

The (virtual) address at which the execution continues.

[A|T|X]

The instruction set after the branch:

  • A represents an A32 instruction.

  • T represents a T32 instruction.

  • X represents a T32EE instruction.

Note

This event is not shown in the trace example file.

Non-ConfidentialPDF file icon PDF versionARM DUI0532F
Copyright © 2010-2013 ARM. All rights reserved. ID041113