2.3.144. TRACEEXTCOND

Enables you to set a tracepoint that triggers when a specified external condition occurs.

Note

This command is valid only for ETM-based hardware targets.

Syntax

TRACEEXTCOND [,qualifier...]

where:

qualifier

Is an ordered list of zero or more qualifiers. The possible qualifiers are described in List of qualifiers.

Note

You must always specify the hw_in qualifier.

Description

This command sets a tracepoint that triggers when a specified external condition occurs. By default, the tracepoint type is Trigger, that is start collecting trace information into the trace buffer. You can modify the action using the hw_out: qualifier to, for example, stop tracing.

List of qualifiers

The command qualifiers are as follows, but not all qualifiers are available for all of the supported trace targets:

hw_and:{id | "then-id"}

Perform an and or an and-then conjunction with an existing tracepoint identified by id, which is one of:

  • next for the next breakpoint specified for this connection

  • prev for the last breakpoint specified for this connection

  • the breakpoint list index of an existing breakpoint.

The parentheses are optional.

Tracepoints set in this way are called chained tracepoints. How RealView Debugger processes the tracepoints depends on the conjunction you have used:

  • In the and form, the conditions associated with both tracepoints are chained together, so that trace capture starts only when both conditions simultaneously match.

  • In the and-then form, RealView Debugger examines the chained tracepoints starting with the last one you specified. When the condition for the last tracepoint is met, the previous tracepoint is enabled. However, trace capture starts only when this tracepoint condition is met. RealView Debugger continues processing all tracepoints in the chain, until the condition in first one you specified is met. At this point, trace capture starts.

    Note

    You must include the quotes when using the and-then form.

If you clear a tracepoint that has the ID next, then all tracepoints in the chain are cleared.

If you clear a tracepoint that has the ID prev, then that tracepoint and the following ones are cleared. The previous breakpoints in the chain remain set.

hw_in:{s}

Input trigger to test for external condition events. You must always specify this qualifier. The string s is specific to the trace connection being used. For the ARM ETM, the following case-sensitive forms are defined:

"External Condition=s"

The tracepoint is activated on the events shown in Table 2.22.

Table 2.22. External condition events

EventString setting

External inputs 1-4

ExternalIn1 ExternalIn2 ExternalIn3 ExternalIn4

Extended external inputs 1-4 (ETMv3.1 and later)

The number of inputs available depends on the ETM.

Extended ExternalIn1 Extended ExternalIn2 Extended ExternalIn3 Extended ExternalIn4

EmbeddedICE watchpoints 1-2

Watchpoint1 Watchpoint2

Access to ASIC memory maps 1-16

ASIC Memmap 1 ... ASIC Memmap 16

Note

For Extended external inputs 1 to 4, you must also use the ETM_CONFIG command to specify the number of the external input to test.

Up to four signals are available. The ASIC manufacturer determines the availability and usage of these output signals. See your ASIC documentation for details.

hw_not:{then}

Use this qualifier to invert the sense of a hw_and:{then} condition specified in the same command.

For example, to form or and nand-then conditions use the hw_not:then qualifier in conjunction with hw_and, for example:

TRACEEXTCOND,hw_and:next,hw_not:then,hw_in:"External Condition=ExternalIn1"
hw_out:{s}

Output trigger tests. The string s is specific to the trace connection being used. For the ARM ETM, the following case-sensitive forms are defined:

"Tracepoint Type=s"

Specify the trace action when an external condition occurs at an address in the specified range, where s is:

Trigger

Output a trigger event to the TPA.

Start Tracing

Start trace capture.

Stop Tracing

Stop trace capture.

Trace Instr

Trace instructions only.

Trace Instr and Data

Trace instructions and data.

ExternalOut1, ExternalOut2, ExternalOut3, or ExternalOut4

Trace the specified external output.

Note

An address range can be specified only for Trace Instr and Trace Instr and Data.

For example, to trace only instructions when an external condition occurs and an instruction is executed at an address in the range 0x1E000-0x1FF00, enter the command:

TRACEEXTCOND,hw_out:"Tracepoint Type=Trace Instr",hw_in:"External Condition=ExternalIn1"
hw_passcount:(n)

Specifies the number of times that the specified condition has to occur to trigger the tracepoint. You can use this option to set up and use the ARM ETM counter hardware, if the ETM has counters and there is one available for use. ETM counters are 32 bits.

modify:(n)

Instead of creating a new tracepoint, modify the tracepoint with tracepoint ID number n by replacing the address expression and the qualifiers of the existing tracepoint to those specified in this command.

Note

You cannot use this qualifier with the hw_and qualifier to change a non-chained tracepoint to a chained tracepoint. However, you can modify a chained tracepoint with any other qualifier and also change the address expression.

Examples

The following example shows how to use TRACEEXTCOND:

TRACEEXTCOND,hw_out:"Tracepoint Type=Trigger",hw_pass:5,hw_in:"External Condition=ExternalIn1"

Set a trigger to output captured trace after the fifth external condition on External input 1.

Alias

TRCEEXTC is an alias of TRACEEXTCOND.

See also

Copyright © 2002-2011 ARM. All rights reserved.ARM DUI 0175N
Non-ConfidentialID052111