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:


Timestamp (decimal value).


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


This is a program flow change by:

  • A direct branch FD.

  • An indirect branch FI.

  • A return from exception FR.


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


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


The (virtual) address at which the execution continues.


The instruction set after the branch:

  • A represents an A32 instruction.

  • T represents a T32 instruction.

  • X represents a T32EE instruction.


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