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 meaning:


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 core. 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 ARM instruction

  • T represents a Thumb instruction

  • X represents a Thumb-2EE instruction.


This event is not shown in the trace example file

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0532D