Advanced Event Triggering

From Texas Instruments Wiki
Jump to: navigation, search

Advanced Event Triggering (AET)

What is it?

  • Advanced emulation capabilities can be broken into two main features: Advanced Event Trigger (AET) and Trace.
  • More details on Breakpoints

What can we do with it?

AET capability can be used to debug complex problems as well as understand performance characteristics of user applications. AET provides the following capabilities:

  • Hardware Program Breakpoint: specifies addresses or address ranges that can generate events such as halting the processor or triggering the trace capture.
  • Data Watchpoints: specifies data variable addresses, address ranges, or data values that can generate events such as halting the processor or triggering the trace capture.
  • Counters: count the occurrence of an event or cycles for performance monitoring.
  • State Sequencing: allows combinations of hardware program breakpoints and data watchpoints to precisely generate events for complex sequences.
  • Trace is a debug technology that provides a detailed, historical account of application code execution, timing, and data accesses. Trace collects, compresses, and exports debug information for analysis. Trace works in real-time and does not impact the execution of the system. See: XDS560 Trace

What devices have what capability?

Most devices can be described by their core or mega-module. For the C64x+ family, there are two types of mega-modules, they are the C64x+ Mid-GEM and the C64x+ Full GEM.

Only Full-GEM devices have AET/Trace capabilities. The Mid-GEM devices do not.

Some examples (this is not a complete list) of devices which have a Full-GEM megamodule are C641x, C671x, C645x, TNETV3020, TCI6488, DM64x, C674x.

Some examples of devices which have Mid-GEM megamodules are C642x, DM643x, DM644x, OMAP35xx, DM37xx, and DM646x.

C66x devices have AET.

Learn More


Q: How do I use this?

Q: Can I use this without CCS?

Q: Is there a similar capability in the Simulator?

Q: Where can I get more information?

Q: Can I use a SW instruction to trigger the AET?

  • A: Yes, please see the section about the MARK instructions (MARK0 - MARK3).

Q: What does the "MARK0 - MARK3" mean?

  • A: Mark0 - Mark3 are actually instructions that can trigger Advanced_Event_Triggering (AET). There is an intrinsic for the newer compilers (_mark(0)) that you can use in C code. These instructions allow you to trigger AET by executing a specific instruction. The actual execution of the instruction is equivalent to a nop. These instructions are only available on 64x+ devices, and there are 4 of them.

Q: What does the "AEGEVT0 - AEGEVT6"?

  • A: AEGEVT 0-7 is a set of events that can be connected to signals from the interrupt controller, which consist of the System events, along with interrupt events. When you use one of these as an input to an AET job, you also want to configure a "Set AEGEVT/Externa(8)" job from the Unified Breakpoint Manager . For example, say you want to use AET to trigger whenever there is a RapidIO interrupt. RapidIO Interrupt is considered an external event, so in order to get it to come into AET, you have to go through the interrupt controller. You need to configure configure a "Set AEGEVT/External(8)" Unified Breakpoint Manager job to connect this event to one of the AEGEVT slots. For this example, connect it to AEGEVT2, then configure the AET job to trigger on AEGEVT2, which is connected to the RapidIO interrupt.

Q: Where can I learn about Software Breakpoints?

Q: Does this work on the 55x?

Q: Are there hardware breakpoints / hardware watchpoints for C2000?