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.

C55x Profiling

I have been using the Profiler Clock feature (Run->Clock->Enable, Run->Clock->Show)  in CCSv5.3.0.00090 with the C55x cycle accurate simulator v3 to measure the number of cycles needed to execute modules in a C5505 application.under development.

This code comes from a VC5502 device simulator application developed under CCSv2.21. 

I read the following statements in TMS320C55x DSP Programmer’s Guide Preliminary Draft SPRU376A August 2001

-----

4.4.1 Process to Resolve Pipeline and IBQ Conflicts
...
Step 2: Determine where the pipeline conflicts exist.
If you are using the C55x simulator, take advantage of its pipeline conflict detection capabilities. Watch the clock variable when stepping through your code in the C55x simulator to view the intervention of the pipeline protection unit. If the clock increments by more than 1, there might be a pipeline or memory conflict in the instruction you just single stepped.

The C55x emulator/debugger does not support the clock variable, and setting breakpoints before and after may not give you accurate results for a single instruction due to the initial pipeline fill and the final pipeline flush during single stepping. In this case, you should try to benchmark small pieces of looped code.
Also, C55x simulator version 2.1 or higher offers a pipeline visibility plug-in to help you identify and resolve pipeline conflicts.

-----

After reading this, I was pleasantly surprised to find the Profiler Clock feature (Profiler->Enable Clock, Profiler->View Clock) does appear to work in CCSv2.21 connecting to a VC5502 target with an XDS510PP emulator. Should I assume the displayed cycle counts may be artificially high with this setup?

 

I felt compelled to try a similar experiment with CCSv5.3.0.00090 connecting to a C5505 target with an XDS100v2 emulator.

When I click on Run->Clock->Enable, I get the following error message:

-----

C55xx: Can't enable profiling as it requires AU1 which is already claimed for RTDX or breakpoint(s)

-----

Is there a way to make this work?

Are there reasons not to try this?

I have read a handful of posts somewhat related to what I am trying to do. I suspect I am trying to do something that is not supported.

 

Best regards,

Patrick

  • Hi Patrick,

    Patrick McCloskey said:
    Should I assume the displayed cycle counts may be artificially high with this setup?

    yes

    Patrick McCloskey said:

    I felt compelled to try a similar experiment with CCSv5.3.0.00090 connecting to a C5505 target with an XDS100v2 emulator.

    When I click on Run->Clock->Enable, I get the following error message:

    -----

    C55xx: Can't enable profiling as it requires AU1 which is already claimed for RTDX or breakpoint(s)

    -----

    Is there a way to make this work?

    The profile clock requires an emulation resource of which there is a limited number of. Do you have an hardware breakpoints/watchpoints set or have an application which uses RTDX?

    Thanks

    ki

  • Hi Ki:

    I do not expect to use hardware breakpoints.

    We have RTDX enabled so we can monitor the CPU load. I will try to disable RTDX to see if I can then enable the profiler clock.

    Patrick

  • Hi ki

    I am using CCS 5.4 and I have the same problem.

    RTDX is disabled and there are no breakpoints.

    What can I do?

    Thanks 

    Yaron