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.

How to profile code for C6748



Hi,

I am running some test code on C6748 (using a OMAP-L138 eval board from Logic PD. I am using the DSP module only and not the module with ARM + C6748).

The board is hooked up to the host machine through a XDSv2 USB emulator and the 14-pin TI connector.

I need to profile the code to understand bottlenecks better. But, when I click on "Profile -> Setup", I do not get options to enable different profiling options.

Is there a way to profile code running on C6748 using CCStudio v5?

Thanks,

-raja.

  • Hi Raja,

    for the C6000 profiling is only supported in the simulator.

    Please see this thread which also has links to wikis on the topic.

    http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/163104.aspx#593646

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

    http://processors.wiki.ti.com/index.php/FAQ_-_CCSv4#Q:_Why_is_function_profiling_not_supported_on_C6000_hardware.3F

    Sorry to have to provide inconvenient news.

    Best Regards,

    Lisa

  • Thank you Lisa.

    I will look at a combination of using the simulator and profile clock. I would like to profile on the actual hardware with cache effects as the system design I am looking at will be impacted by cache behavior.

    I have read some other posts in this forum about those clock counters not working all the time. Could you please point me to some documentation on what works for C6748 hardware? Also, is it possible to measure multiple counters on a single run?

    Cheers,

    -raja.

  • Hi Raja,

    let me see if I can dig up some answers for you or pull in help from a colleague.

    Regarding the documentation, one of the best and only sources is our processing wiki.  Unfortunately, although there is an external bug tracking tool for various bugs, there is no errata or collection of knows issues related to a certain topic.  Anything like this is typically, again, done on our wiki as a bit of an FAQ entry.

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

    I am working on confirming the measuring multiple counters for you.

    Best Regards,
    Lisa

  • Thanks a lot Lisa.

    Any information you can help me with which will allow me to use the actual hardware to measure performance, that will be great. Like I mentioned, I would like to get an idea of caching/external memory access effects.

    Cheers,

    -raja.

  • Hi Raja,

    this is what I can tell you.  I hope it helps a bit further ...

    "I think analysis counter and ICECrusher counter are different components. Current SW only supports ICECrusher counter."

    "According to ARM ETM spec, ARM9 ETM includes two 16 bit counters. The two counters could be cascaded to a 32 bit counter. I think what three 32 bit counters data sheet talked are two ICECrusher counters and one cascaded ETM counter. I could not find any other counters in the spec. We currently do not support ETM counters. Please let me know if you have any questions."

    Best Regards,
    Lisa

  • Hi Lisa,

    Thank you for your reply. I am actually looking for counters/events on C6748 that I can use for profiling and not the ARM9 ETM counters.

    Like I mentioned, I can use the clock module and set up the clock module to measure some events (like L1 Read/ CPU execution cycles/ etc.). But, not available counters seem to be enabled. So, I am not sure which ones work and are reliable. Also, I can only watch one thing (for example CPU execution cycles) with that method. So, I have to run the same test multiple times to get more data. So, I wanted to find out if there is a way to measure multiple events in one run.

    Cheers,

    -raja.

  • Hi Raja,

    Ok, here is what I got.  Please let us know if this finally is the details you needed.

    "For counting C67x events I would like to recommend to use Count Event function from Breakpoint view. In that case the user can setup two counters to count different events. Also, for each counter the user can count single event or multiple (ORed together) events. User can chose the event in three categories of System, Stall and Memory. Setting up event by using clock module uses some legacy emulation functions which could not fully support C67x counter functions."

    Best Regards,
    Lisa

  • Thank you very much Lisa. I will figure out how to do that and give it a try.

    Cheers,

    -raja.

  • HI Raja,

    no problem at all.  Sorry it became a long thread here.

    I will close this off for now but if it does not work or you need further help, please let us know.

    Best Regards,
    Lisa