This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Basic understanding of system trace and PC trace

Hi,

I need basic understanding of system trace.

My question is what is system trace ?

Why need of system trace in CCS ?

Example of system trace.

Similarly what is PC trace ?

Why need of PC trace ?

Example of PC trace .

With best regards,

Naresh

 

  • Naresh,

    Both System Trace and PC Trace give you the ability to non-intrusively debug and profile applications in real time.  Data is captured by separate hardware units and then decoded offline. 

    Regarding Device Support on the C6000 family, PC trace is supported on 64x devices, 64x+ devices with Full-GEM cores, and on all 66x devices.  System trace is only supported on 66x devices..

    Regarding tools, PC trace requires either an Embedded Trace Buffer be implemented on a target, or a XDS560T emulator and a 60-pin emulation header on the target board.  System Trace requires either ETB support on the device or an XDS560v2 emulator with a 60-pin header.

    PC trace you can think of a trace related to a single core's execution.  It works like a logic analyzer on the Program and Data Buses and can capture activity that goes across those buses.  You can, for example, trace the complete program address execution of your application, or you could use data trace to monitor all of the writes to a specific location or range of locations.  But keep in mind, you only have the ability to monitor traffic over the data and program buses.  EDMA writes can't be monitored, CPU register writes are not monitored.  And, again, this is only the view from a single core.  You don't have visibility to what's going on at the same time in the other cores.

    System Trace gives you the ability to do a system level trace.  There are 2 parts.  One is a printf like function that you can embed in your applications that will pass data out to the trace stream. A t a system level, you can get a picture of the interleaved printfs from all the cores in your system.  There is also CPTracer monitoring.  CPTracer are hardware modules attached to various parts of the CPU (DMA, etc) that you can configure to monitor activity at those points.  Again, the data captured is fed out through the trace stream and compined synchronously with the output from the other cores in the system to give you a picture of the order of events on separate CPUs. 

    You might look at the following links for more information.

    http://processors.wiki.ti.com/index.php/Debugging_With_Trace

    http://processors.wiki.ti.com/index.php/XDS560v2_System_Trace

    Regards,

    Dan

     

     

  • Hi Naresh,

    System Trace can be used to instrument your Application. The STM Library provides printf, message logging and data dump APIs for use to instrument your application.
    With OMAP4, C64 and C66 based devices the library must be used in blocking mode where the processor is used to move messages to the STM module.
    As your application executes the STM module formats and transports the data to either the Embedded Trace Buffer (ETB) or over the EMU pins to an XDS560v2 System Trace Emulator (for a much larger trace buffer). The data can then be displayed with CCS in the Trace Display window (instructions below). There are a few simple environment functions (malloc, free, ...) that must be provided at link time.
    For multi-core devices, the STM library can be built to run on any core.

    For STM Library and example downloads that support the following devices see CtoolsLib.

     

    PC trace will record your programs execution (PC = Program counter). This is very different from System Trace. Today there's XDS560 Trace available.

    Please see http://processors.wiki.ti.com/index.php/XDS560_Trace for more information.

    Kind regards,

    one and zero