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/TMDSEVM6678: How Does CodeComposer function porofiler works?

Part Number: TMDSEVM6678

Tool/software: Code Composer Studio

Hi

In CCS how does Function profiler works?

Does it use ETB and trace features? Or any Other methods?

thanks

  • Hello,

    didoo said:
    In CCS how does Function profiler works?

    See slides 7-9 of the below presentation:

    http://software-dl.ti.com/ccs/esd/training/modules/profiling/CCSv6-Profiling.pptx

    didoo said:
    Does it use ETB and trace features? Or any Other methods?

    No, as mentioned in the link above, it is strictly breakpoint based using the profile clock

    For trace based profiling, see:

    http://software-dl.ti.com/ccs/esd/training/modules/trace_keystone/CCSv6-KeystoneTraceWorkshop.pptx

    Thanks

    ki

  • Hi Ki-Soo, and thanks

    In slide 7 it says:

    "Hardware support is provided by setting breakpoints on each function entry/exit point and reading a counter on the target"

    What kind of breakpoint does CCS use?

    which counter is used? is it a register?

    if I extract functions address from .out file, How can I do CCS function profiling method from core0 (linux os) on other cores?

     

  • The type of breakpoint used depends on what is defined in the debugger memory map. If it is defined as RAM, it will use software breakpoints. If it is defined as flash, it will use hardware breakpoints. Since the function profiler can use many breakpoints, it is not a feasible solution for profiling code in flash - due to the limited number of hardware breakpoint resources.

    It uses a dedicated profile clock that is part of the on-chip emulation logic. Sometimes this clock is not available on certain targets. In those cases, sometimes the driver will use an alternate counter (like timer register).

    The function profiler determines all the addresses from the debug symbols and will automatically set up the ranges.

    Note that the function profiler is very INTRUSIVE. The target is being halted at the entry and exit point of each function. For any application with real-time constraints, the function profiler is not the best option.

    Thanks
    ki