Multicore System Analyzer

From Texas Instruments Embedded Processors Wiki

(Redirected from System Analyzer)
Jump to: navigation, search
Translate this page to   

Contents

Overview

System Analyzer is a suite of tools that provide real-time visibility into the performance and behavior of your code, and allow you to analyze information that is collected from software and hardware instrumentation in a number of different ways.

Advanced Tooling Features:

Analysis Features

More information on these features is provided in the System Analyzer User's Guide (shipped with the product and a link is provided below).

The Unified Instrumentation Architecture (UIA)

Unified Instrumetation Architecture (UIA) is the target-side package (included in System Analyzer) which defines the APIs, transports, interfaces and guidelines that enable developers to instrument embedded software in a way that is portable and flexible, and enables the creation of advanced tooling features that can be used both in the lab and in the field.

Portable and Flexible:

System Analyzer together with it's UIA package define an instrumentation framework that enables the development of instrumentation client tools, instrumented target content, infrastructure components, and instrumentation middleware components that interoperate and can be re-used across TI platforms and devices. This framework enables the creation of interactive and script-driven tools capable of providing developers with insight into the operation and real-time dynamics of application software, software components and silicon devices within the context of the system they are running on.

The Unified Instrumentation Architecture framework includes:


Releases

System Analyzer is being released in multiple ways:

Available features

FEATURE System Analyzer 1.0 Beta 2 System Analyzer 1.0 GA
Ethernet transport x x
JTAG Stop-mode transport x x
JTAG Run-mode Transport x x
Execution Graph x x
CPU Load x x
Task Load x x
Benchmark/Duration Analysis x x
Context Aware Profile x x
Statistics/Count Analysis - x

Other components/products

Depending on your requirements, a number of different components/products may be involved in utilizing System Analyzer, including:

  - UIA: Unified Instrumentation Architecture APIs 
  - XDC: eXtended C tools and software
  - IPC: Inter-processor communications library
  - NDK: Network Developers Kit
  - BIOS: DSP/BIOS and SysBIOS RTOS
  - DVT: the Data Visualization Toolkit
  - CCS: Code Composer Studio: An eclipse-based Integrated Development Environment

Software Development Kits that include System Analyzer:

  - MCSDK
  - DM816X SDK

Road Map

FEATURE System Analyzer 1.1 Future
ETB Draining via UIA x
CPU Trace, STM and UIA Correlatin x
Logging on Linux x
Tighter integration with CCS x
Realtime Config & s/w instrumentation control x
USB Transport x
STM Transport x
Remote Debugging x
Back Trace x

Installation

CCS5.1

System Analyzer is included in CCS5.1 M6 and newer. It is not supported for earlier versions of CCS5.1.

CCS5.0

For users installing the MCSDK, System Analyzer will automatically be installed as part of the MCSDK installer. For non-MCSDK installation see Getting Started Guide below on how to install System Analyzer.

UIA Target Content Packages

If you need to use a different release of the UIA Target Content package than the one that is installed with CCS, you can download it from http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/uia/index.html. (See the Release Notes for compatibility info. etc.)

Getting Started Guide

The System Analyzer Getting Started Guide provide information on:

User's Guide

The System Analyzer User's Guide contain complete information on:

Videos

Tutorials

Slides and Other Documents

The Analysis Suite Slides Analysis Suite Slides provide an overview of key analyzers tools available.

System Analyzer and the MCSDK Demo

Known Issues/Errata

DVT patch for CCS 5.1/5.1.1

System Analyzer intermittently not receiving data in CCS 5.1/5.1.1

System Analyzer does not handle European locale (i.e. "," is used instead of "." for floating point)

System Analyzer is not able to autoconfigure from the debug session

System Analyzer does not show up in tools menu

System Analyzer does not recover after reloading/reset/restart target

CCS Crash when opening Graph in System Analyzer

Multicore correlation no working

uia_1_00_04_35 : Tutorial 1 and Tutorial 2 do not build properly.

FAQs

Q: When can I use System Analyzer auto configuration

When launching a Live or Binary File session users can choose to let System Analyzer auto configure itself. For this to work you must:

Q: Configuring System Analyzer when auto configuration is not possible

See Configuring System Analyzer Transport and Endpoints in Chapter 4 of the System Analyzer User's Guide

Q: Can I launch System Analyzer before the target if running

If using Ethernet transport, System Analyzer expects that the target is up and running and the Ethernet connection is established before it is started. For JTAG transport the target does not have to be running.

Q: What happens if the target is halted while collecting data using Ethernet transport

Halting the target may result in the ethenet connection getting disconnected. The connection can be re-established using the connect button.

Q: How to Profile functions using enter and exit hook functions

In order to do inclusive and exclusive profiling of functions(using Context Aware Profiler of System Analyzer), a UIA log is needed at the entry and exit point of functions. One can add entry and exit hook functions to every function in the source by doing the following

Use the following compiler options when compiling the source

--entry_hook=functionEntryHook
--entry_parm=address
--exit_hook=functionExitHook
--exit_parm=address

To use the required UIA events, need this include

#include <ti/uia/events/UIABenchmark.h>


Add entry and exit hook functions to the source (The below one is for Context aware function profiling)

void functionEntryHook( void (*addr)() ){
    Log_write3(UIABenchmark_startInstanceWithAdrs, (IArg)"context=0x%x, fnAdrs=0x%x:",(IArg)0, (IArg)addr);
}

void functionExitHook( void (*addr)() ){
    Log_write3(UIABenchmark_stopInstanceWithAdrs,  (IArg)"context=0x%x, fnAdrs=0x%x:",(IArg)0, (IArg)addr);
}

The 1st parameter after the message string is a context parameter and can be used to specify an additional level of qualification. For our purpose out here we can ignore this and just set it to 0.

If task aware profiling is needed, the Task context has to be logged. SYS/BIOS automatically logs events for task switches and SWI and HWI Start and Stop events. See Enabling and Disabling logging Sec 5.2.2 in System Analyzer User's Guide. Context change can also be explicitly logged by the application. For more on Profiling using system analyzer refer to section 3.5,4.12 of the user's guide.

Profiling Results when using Libraries: Hook functions will not be added and hence called from functions in libraries that have been linked in. This will cause the Exclusive counts of the functions making calls to the Library, to include the Library functions duration.

Trouble Shooting

System Analyzer Events or Packets are being dropped

See Troubleshooting System Analyzer Connections section in the System Analyzer User's Guide

No Events showing up in System Analyzer Views

See Troubleshooting System Analyzer Connections section in the System Analyzer User's Guide

System Analyzer cannot connect to the target to retrieve logs

See Troubleshooting System Analyzer Connections section in the System Analyzer User's Guide

System Analyzer Events do not make sense

See Troubleshooting System Analyzer Connections section in the System Analyzer User's Guide

Time values in the logs are too large

See Troubleshooting System Analyzer Connections section in the System Analyzer User's Guide

Technical Support and Product Updates

For technical discussions and issues, please visit

Note: When asking for help in the forum you should tag your posts in the Subject with "System Analyzer", the part number (e.g. "C6678"), and component (e.g. "UIA").


For product updates,


E2e.jpg
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article Multicore System Analyzer here.

Hyperlink blue.png Links
ARM Microcontroller MCU ARM Processor Digital Media Processor Digital Signal Processing Microcontroller MCU Multi Core Processor
Ultra Low Power DSP 8 bit Microcontroller MCU 16 bit Microcontroller MCU 32 bit Microcontroller MCU

Leave a Comment
Personal tools
Namespaces
Variants
Actions
Navigation
Print/export
Toolbox