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.

CCS/OMAP-L138: Instrumentation and profiling

Part Number: OMAP-L138
Other Parts Discussed in Thread: SYSBIOS,

Tool/software: Code Composer Studio

Hello,

I am attempting to get CPU load monitoring running for the DSP, but have had nothing but frustrating experiences thus far.  I am using the following tools:

CCS v7

SYS/BIOS 6.34.03.19

IPC 1.25.01.09

pdk 1.01.00.02

EDMA LLD 02.11.09.08

XDC Tools 3.24.03.33

UIA 1.02.00.07

Everywhere I look seems to suggest that setting up LoggingSetup through XGCONF should enable the necessary UIA tools in order to use the System Analyzer or the RTOS Analyzer.  When I enable this, then open the analyzers, and halt the processor, I show no data received.  The portion of my .cfg script pertaining to UIA is shown below:

var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');
var Load = xdc.useModule('ti.sysbios.utils.Load');

LoggingSetup.sysbiosSwiLogging = true;
LoggingSetup.sysbiosTaskLoggingRuntimeControl = false;
Load.swiEnabled = true;
LoggingSetup.loadLoggingRuntimeControl = false;
LoggingSetup.mainLoggingRuntimeControl = false;
LoggingSetup.eventUploadMode = LoggingSetup.UploadMode_JTAGSTOPMODE;

Any guidance toward the proper way to set up Load monitoring on OMAP-L138 MCSDK is greatly appreciated, as I am trying to determine if my application has exceeded the performance of the DSP.

Thank you,

Jeff

  • Hi Jeff,

    I've notified our RTOS experts. Their feedback will be posted directly here.

    Best Regards,
    Yordan
  • Some findings:

    I was able to get the legacy RTA tools that ship with CCSv5 somewhat working, though my project would not import as anything but a debuggable executable. I was able to see task load and partial execution graph. The execution graph showed "unknown" for most of the execution time, so that probably has something to do with configuration.

    In CCSv6 and CCSv7 I am able to view CPU load data through ROV, but the RTOS Analyzer and System Analyzer tools do not seem to be working. They will open and detect the UIA configuration, but no data is displayed when the target is stopped.
  • Does anything show up in the "Live Session" window? Can you try stopping (little red button in the Live Session frame) and starting icon (now the green arrow in the Live Session frame)? Did the contents you see in ROV now get read into System Analyzer?

    What exact version of CCS do you have?
  • The exact procedure:

    Connect ARM to load GEL
    Start ARM
    Tools -> RTOS Analyzer, wait to load
    Tools -> RTOS Analyzer -> Load Analysis
    Select CPU Load and Task Load
    Click Start
    Click OK on instrumentation status warning.
    Start DSP
    Pause DSP

    Live Session, CPU Load Graph, and Task Load Graph contain no information.

    Stop Live Session, Start Live Session
    Dialog: DVT is not setup properly because UIA session is not connected to target. Please check your UIA configuration.
    No changes appear.

    I am connected to the LCDK using the XDS100v2 emulator.
    I am using:
    CCS v7.1.0
    CCS IDE C6000 Components 7.1.0.201703152000
    CCS Base Components 7.1.0.01971

    CFG Script (UIA related parts):
    var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');
    var Load = xdc.useModule('ti.sysbios.utils.Load');
    var LoggerStopMode = xdc.useModule('ti.uia.runtime.LoggerStopMode');
    LoggingSetup.sysbiosHwiLogging = true;
    LoggingSetup.sysbiosSwiLogging = true;
    LoggingSetup.sysbiosHwiLoggingRuntimeControl = true;
    LoggingSetup.sysbiosSwiLoggingRuntimeControl = true;
    Load.hwiEnabled = true;
    Load.swiEnabled = true;
    LoggingSetup.eventUploadMode = LoggingSetup.UploadMode_JTAGSTOPMODE;
    LoggerStopMode.enableFlush = true;
    var loggerStopMode0Params = new LoggerStopMode.Params();
    loggerStopMode0Params.instance.name = "loggerStopMode0";
    Program.global.loggerStopMode0 = LoggerStopMode.create(loggerStopMode0Params);

    The project is a modified version of the McASP example project.
    Please let me know if there is any other information I can provide.

    Thanks,
    Jeff
  • When you start the analyzer, does it show that name of the image running on the target (I'm assuming when you say Start ARM, this includes loading the image to the target via CCS).

    You are seeing Log records in ROV still...correct?
  • For the ARM, I am only loading the GEL file so that the DSP is initialized (PSCs and whatnot). The image is being loaded to the DSP at the start of the debug session.

    When the analyzer is started, the correct name of the executable is displayed, the transport is shown as stop-mode jtag, the processor is correct, and the application is shown as instrumented.

    The ROV window is still showing CPU load data.