XDS560 Trace. Technology Showcase. Daniel Rinkes Texas Instruments

Similar documents
XDS560 Trace. Advanced Use Cases for Profiling. Daniel Rinkes Texas Instruments

file://c:\documents and Settings\degrysep\Local Settings\Temp\~hh607E.htm

April 4, 2001: Debugging Your C24x DSP Design Using Code Composer Studio Real-Time Monitor

SMT107 User Manual User Manual (QCF42); Version 3.0, 8/11/00; Sundance Multiprocessor Technology Ltd. 1999

Using ARM ETB with TI CCS. CCS 3.3 with SR9 on TMS320DM6446

XDS200 ISO Operating Guide

Advanced Debugging using the Ashling MPC5500 tools

KeyStone Training. Keystone Architecture Debug

XDS560V2 Installation Guide

Managing Complex Trace Filtering and Triggering Capabilities of CoreSight. Jens Braunes pls Development Tools

UAD2 + Universal Access Device2 plus

Tracking the Virtual World

4 DEBUGGING. In This Chapter. Figure 2-0. Table 2-0. Listing 2-0.

This chapter introduces how to use the emulator of TOPICE quickly.

EB-51 Low-Cost Emulator

Performance analysis basics

PSIM Tutorial. How to Use SCI for Real-Time Monitoring in F2833x Target. February Powersim Inc.

Speeding AM335x Programmable Realtime Unit (PRU) Application Development Through Improved Debug Tools

System Debug. This material exempt per Department of Commerce license exception TSU Xilinx, Inc. All Rights Reserved

Support for RISC-V. Lauterbach GmbH. Bob Kupyn Lauterbach Markus Goehrle - Lauterbach GmbH

NEW CEIBO DEBUGGER. Menus and Commands

Blackhawk USB560v2 Operating Mode Details and Instructions

TDS510USB-C2K Emulator Installation Guide

Enterprise Architect. User Guide Series. Profiling

Enterprise Architect. User Guide Series. Profiling. Author: Sparx Systems. Date: 10/05/2018. Version: 1.0 CREATED WITH

Enabling safer embedded systems

KeyStone Training. Keystone Device Tooling

Homework 9: Software Design Considerations

PSIM Tutorial. How to Use SPI in F2833x Target. February Powersim Inc.

All information, including contact information, is available on our web site Feel free also to explore our alternative products.

Configuring Code Composer Studio for OMAP Debugging

Keil uvision development story (Adapted from (Valvano, 2014a))

Tracing mfence White Paper

Olimex Field Update Kit

The PCMCIA DSP Card: An All-in-One Communications System

Verifying big.little using the Palladium XP. Deepak Venkatesan Murtaza Johar ARM India

RTOS Debugger for ChibiOS/RT

Blackhawk USB560v2 System Trace Emulator. Installation Guide

UCD3138. JTAG Configuration. Using CCS 6

CodeWarrior Development Studio for QorIQ LS series - ARM V8 ISA, Tracing and Analysis User Guide

Renesas 78K/78K0R/RL78 Family In-Circuit Emulation

Design and Implementation of a FPGA-based Pipelined Microcontroller

ICE/FIRE Analyzer Programming Dialog

Performance Tools for Technical Computing

Debugging in AVR32 Studio

DOMAIN TECHNOLOGIES INC. Users Guide Version 2.0 SB-USB2. Emulator

POD 51EH C541U 12 EA ALE PSEN XH0 XH1 XH2 XH3 XH4 XH5 XH6 XH7 XL7 XL6 XL5 XL4 XL3 XL2 XL1 XL0. Figure 1. POD 51EH C541U 12

Software Design Challenges for heterogenic SOC's

Lesson 2: Using the Performance Console

picojava I Java Processor Core DATA SHEET DESCRIPTION

TI TMS320C6000 DSP Online Seminar

Simplifying the Development and Debug of 8572-Based SMP Embedded Systems. Wind River Workbench Development Tools

TRACE32 Getting Started... ICD In-Circuit Debugger Getting Started... ICD Introduction... 1

ARM Cortex-M and RTOSs Are Meant for Each Other

Input/Output Systems

MPLAB SIM. MPLAB IDE Software Simulation Engine Microchip Technology Incorporated MPLAB SIM Software Simulation Engine

TMS320C674x/OMAP-L1x Processor General-Purpose Input/Output (GPIO) User's Guide

_ V1.1. Motorola 6809 B POD rev. C. POD Hardware Reference

RTOS Debugger for ThreadX

Introduction. This tutorial introduces the following SingleStep features:

The World Leader in High Performance Signal Processing Solutions. Development Tools.

Distributed Debugging API for ORBs and Services. Request for Proposal, test/ Dale Parson, Distinguished Member of Technical Staff

Employing Multi-FPGA Debug Techniques

All information, including contact information, is available on our web site Feel free also to explore our alternative products.

BASICS OF THE RENESAS SYNERGY PLATFORM

Efficient and Large Scale Program Flow Tracing in Linux. Alexander Shishkin, Intel

RTE-V850E/GP1-IE USER'S MANUAL (REV.1.01) RealTimeEvaluator

FPGA Adaptive Software Debug and Performance Analysis

Addressing the Increasing Challenges of Debugging on Accelerated HPC Systems. Ed Hinkel Senior Sales Engineer

DoCD IP Core. DCD on Chip Debug System v. 6.02

University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual

Lab 4- Introduction to C-based Embedded Design Using Code Composer Studio, and the TI 6713 DSK

Differences Between the EOnCE and OnCE Ports

XDS560v2 LC Traveler JTAG Emulator Technical Reference

TRACE32. Product Overview

Optimizing Emulator Utilization by Russ Klein, Program Director, Mentor Graphics

Development Tools. 8-Bit Development Tools. Development Tools. AVR Development Tools

Application Report. Chuck Brokish Senior Member, Technical Staff... Field Design and Applications ABSTRACT

CodeWarrior Development Studio for QorIQ LS series - ARM V8 ISA, Tracing and Analysis User Guide

Embedded Systems Programming

Freescale S12X Family In-Circuit Emulation

_ V Intel 8085 Family In-Circuit Emulation. Contents. Technical Notes

Performance Profiling

F28335 ControlCard Lab1

RM4 - Cortex-M7 implementation

On-Chip Debugging of Multicore Systems

RTOS Debugger for RTX-ARM

As CCS starts up, a splash screen similar to one shown below will appear.

ΕΛΠ 605: Προχωρηµένη Αρχιτεκτονική Υπολογιστών. Εργαστήριο Αρ. 4. Linux Monitoring Utilities (perf,top,mpstat ps, free) and gdb dissasembler, gnuplot

Profiling Nios II Systems

Contents. Cortex M On-Chip Emulation. Technical Notes V

SMP/BIOS Overview. Nov 18, 2014

Stanislav Bratanov; Roman Belenov; Ludmila Pakhomova 4/27/2015

A design of real-time image processing platform based on TMS320C6678

Lab 1. OMAP5912 Starter Kit (OSK5912)

SMP/BIOS Overview. March 19, 2015

Code Composer TM. Quick Start Guide

Application Note for EVP

XMC4800 EtherCAT APP SSC Firmware Update Slave Example. Getting Started Version 3.0

Computer Organization: A Programmer's Perspective

Transcription:

XDS560 Trace Technology Showcase Daniel Rinkes Texas Instruments

Agenda AET / XDS560 Trace Overview Interrupt Profiling Statistical Profiling Thread Aware Profiling Thread Aware Dynamic Call Graph

Agenda AET / XDS560 Trace Overview Interrupt Profiling Statistical Profiling Thread Aware Profiling Thread Aware Dynamic Call Graph

What is XDS560Trace? XDS560 Trace is a combination of hardware and software that allows non-intrusive logging of CPU Program and Data Bus activity Data is gathered and compressed on the target, and passed up to the XDS560 Trace Pod via an additional 15 EMU Pins (Currently uses up to 12 total) The data is then decompressed on the host and displayed for the user. Visibility into CPU Register Values/Reads/Writes Visibility into EDMA Activity Multi Core XDS560 Trace is Not

Trace Architecture DATA ADDRESS BUSSES CPU DATA BUSSES PROGRAM BUS Trace & AET Jobs Comparators Compressor Cycle counter DSP XDS560T POD Additional JTAG Emulation Pins Current Buffer Size: 224K Future: 64 MB XDS560T POD RECORDING UNIT To/from host PC

OK so what is AET Advanced Event Triggering (AET) On-Chip programmable logic that can be programmed to generate triggers based on application events or combinations of application events

AET Hardware Overview

AET Job Examples Trace PC whenever the PC is between location A and B (PC Trace in Range) Trace all writes to memory location 0x12345678 (Data Trace) Halt whenever the application executes the instruction at location 0x801000, but only after it has executed the instruction at 0x804060 (Hardware Breakpoint qualified by a Sequencer State) Halt when the value 0x00001234 is written to location 0x80500000 (Halt on Data Write qualified by value)

Required Software and Hardware 60 Pin emulation header Target must support Trace (Full-Gem) Blackhawk USB 560 XDS560T Trace Pod/Cable CCS 3.30 or higher

XDS560 Trace Use Cases Debugging Branch to uninitialized memory Invalid Writes to specific locations in memory Order of execution Interrupts Disabled

XDS560 Trace Use Cases - 2 Profiling & Application Analysis Find the most cycle intensive functions in an application Display a Cycle Accurate Thread Execution Graph Provide Function Profile information in a thread specific context All in a matter of minutes

Profiling Advantages Over Traditional Methods Memory/Cache/Peripheral Effects all inherently considered Real-Time, Cycle Accurate, and Completely Non-Intrusive to the application It s fast results in minutes

Agenda AET / XDS560 Trace Overview Interrupt Profiling Statistical Profiling Thread Aware Profiling Thread Aware Dynamic Call Graph

Interrupt Profiling Overview Graphically display interrupt cycle accurate interrupt servicing frequency Capture Program Address and Timestamp whenever the PC is within the Interrupt Vector Table Generate a cycle accurate picture of when each interrupt starts executing

Trace Log PC Cycles 0x00897C60 102456 0x00897C64 102457 0x00897C68 102458 0x00897C6C 102459 0x00897C70 102460 0x00897C74 102461 0x00897C78 102462 0x00897C7C 102463 Cycle Count 102456 102463 102458 102459 102461 102462 102457 102460

Raw Trace Data Data Captured Processed Data

Results

Results - 2

Agenda AET / XDS560 Trace Overview Interrupt Profiling Statistical Profiling Thread Aware Profiling Thread Aware Dynamic Call Graph

Statistical Profiling GOAL Get a quick overall view of which functions in an application consume the most cycles Sampling every Program Counter in an application quickly consumes Trace Buffer Bandwidth, preventing analysis of the entire application We can eliminate this problem by only capturing a statistical sample of application execution

Fxn1 Fxn2 Fxn3 Fxn4 Fxn5 Fxn6 Statistical Profiling Overview The Program Address is sampled at regular intervals Statistical Analysis is performed on the captured samples As in any statistical analysis, the determinations made on the statistical sample can be related to the general population 4 4 2 5 3 3 2 2 2 3 3 6 6 4 4

Statistical Profiling - 2 AET contains all of the hardware needed to capture trace samples at a specified interval Interval should be carefully chose so as not to coincide with a periodic function Application instrumentation can switch AET off in locations that are not of interest

Statistical Profiling - Results Comma Separated Value Format Sorted from most intensive functions to least

Agenda AET / XDS560 Trace Overview Statistical Profiling Interrupt Profiling Thread Aware Profiling Thread Aware Dynamic Call Graph

Thread Aware Profiling GOAL Generate a cycle accurate execution graph of a Thread/Task based application Time (cycles)

Solution Instrument the task/thread switch function to write the task/thread ID to a well known location (global variable) Operating systems typically provide hooks to insert functions in this location Trace all of the writes to that location, and get a timestamp with each.

Results

Agenda AET / XDS560 Trace Overview Statistical Profiling Interrupt Profiling Thread Aware Profiling Thread Aware Dynamic Call Graph

65 Thread Aware Dynamic Call Graph 200 GOAL Display a Thread Based representation of actual function execution in an application 132 200 68

Capturing the Data Thread/Task Hook function writes address of task Function Entry/Exit points instrumented with Mark 0/ Mark 1 instructions* Mark 0 inlined at each function entry point Mark 1 inlined at each function exit point Trace captures each of these locations with timestamp * CGT 6.0.1 enables function hooks

Graphical Displays become impractical as the number of functions increase Presentation At right is a sample call graph displayed by the Guess graphing package

Modeled after Unix GPROF Each Thread separated into it s own subsection Each function section contains only immediate callers and callees GPROF Like Format

A Closer Look Lines Primary for a Functions Line - describes Callees Callers the function which the entry is about and gives the overall statistics for this function

Future Display Tree View Thread: 0x828194 _DEC_tcp2DeintUnpunctsoft3 _DEC_tcp2QuantizeSoft Callers Callees _DEC_tcp2PreProc _varianceestim Calls = 388/388 _COM_spoolTsk Exclusive Cycles = 14491050 _COM_spoolPost _DEC_tcp2EdmaIsr

Questions?