5.3.5. Synchronous Data Abort exception

If the synchronous Data Abort exception occurs on an instruction that immediately follows a waypoint instruction, the PTM:

  1. Traces the waypoint instruction normally, by generating one of:

    • An atom, that it outputs in an atom packet. This packet might include any atoms assembled before the exception occurred.

    • A branch address packet.

  2. Generates an exception branch address packet that identifies the synchronous Data Abort exception and gives the address of the exception vector.

In this case the instruction that caused the Data Abort exception is at the target address of the last waypoint.

Table 5.7 shows an example of this trace.

Table 5.7. Tracing a synchronous Data Abort exception after a waypoint instruction

AddressInstructionTrace, if any, with explanation
0x0F00LDR PC, loads 0x1004This waypoint is executed. The PTM traces it by generating a branch address packet, with target address 0x1004.
0x1004LDR R0, Data abortsException branch address packet, indicating a synchronous Data Abort exception, with a destination address of 0x0010, the Data Abort vector address .
0x0010LDR PC, loads 0x3400Branch address packet with destination 0x3400. This implies an E atom. This is a normal indirect branch.
0x3400(Data Abort exception handler)Traced normally. Depending on the instruction stream and TraceEnable configuration, the PTM might generate some packets.
-
-
-

If the synchronous Data Abort exception occurs on an instruction that follows an executed nonwaypoint instruction then the PTM:

  1. Upgrades the instruction immediately before the instruction that caused the Data Abort exception to a waypoint instruction, and generates a waypoint update packet that indicates the address of that instruction.

  2. Generates an exception branch address packet that identifies the synchronous Data Abort exception and gives the address of the exception vector.

In this case the instruction that caused the Data Abort exception is the instruction that immediately follows the upgraded waypoint instruction.

Table 5.8 shows an example of this trace.

Table 5.8. Tracing a synchronous Data Abort exception after a nonwaypoint instruction

AddressInstructionTrace, if any, with explanation.
0x0F00LDR PC, loads 0x1000This waypoint is executed. The PTM traces it by generating a branch address packet, with target address 0x1000.
0x1000MOVNonwaypoint instruction. Not traced when processor executes the instruction.
0x1004LDR R0, Data aborts

The PTM upgrades the MOV at 0x1000 to a waypoint instruction and generates a waypoint update packet with the address 0x1000 [a]. It then issues an exception branch address packet, indicating an synchronous Data Abort exception, with a destination address of 0x0010, the Data Abort vector address .

0x0010LDR PC, loads 0x3400Branch address packet with destination 0x3400. This implies an E atom. This is a normal indirect branch.
0x3400(Data Abort exception handler)Traced normally. Depending on the instruction stream and TraceEnable configuration, the PTM might generate some packets.
-
-
-

[a] If the PTM is holding any assembled atoms it outputs these in an atom header before generating the waypoint update packet. This means that the trace output stream has any outstanding atoms, followed by the waypoint update packet, followed by the exception branch address packet.


Copyright © 1999-2002, 2004-2008, 2011 ARM. All rights reserved.ARM IHI 0035B
Non-ConfidentialID060811