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.

TSCL/TSCH in TCI6630K2L ?

Other Parts Discussed in Thread: TCI6630K2L

I am using CCSv5 simulator. Target is TCI6630K2L. I was trying to measure the execution time and used TSCL/TSCH.  I got the following compile time error :error #20: identifier "TSCL" is undefined .  Can't I use TSCL/H for time measurements in the target I am working with ? If so what is the equivalent way of measuring the execution time ? 

Thanks.

  • You have to #include <c6x.h> to get the declarations of TSCL and TSCH. This is assuming you are running on the DSP. The Arm core(s) don't have TSCL and TSCH.
  • I have included #include <c6x.h> and also running on DSP.   

  • can you provide the CCS console output of the build? I want to see the compiler output.
  • Can you please refer to the following e2e post ?
    e2e.ti.com/.../1856248
  • Welcome to the TI E2E(Keystone) forum. I hope you will find many good answers here and in the TI.com documents and in the TI Wiki Pages (for processor issues). Be sure to search those for helpful information and to browse for the questions others may have asked on similar topics (e2e.ti.com). Please read all the links below my signature.

    Note: We strongly recommend you to create new e2e thread for your queries instead of following up on an old/closed e2e thread, new threads gets more attention than old threads and can provide link of old threads or information on the new post for clarity and faster response.

  • Hi,
    FYI: Our simulator support is de-focused with latest CCS. We recommend you to use EVM for early development.

    Thank you.
  • I am using EVM board TCI6630K2L for measuring the cycles using TSCL. I am using CCSv5.  I have included <c6x.h> . Still it is not working. I looked at c6x.h , it seems there is a if define before TSCL/H definitions :

    #if defined(_TMS320C6400_PLUS) || defined(_TMS320C6740) || defined(_TMS320C6600) || \
    defined(_TI_C6X_TESLA)


    May be this is the reason it is not working. Could anyone help with this?

    Note:   If I build the same project with the device setting as C64x+ or C66x , it is compiling successfully.

     

    Screen capture of compilation error:

  • You are missing a compiler switch, -mv64+


    Can you share a screenshot of your project general settings? Right click on your project in the project explorer, then select properties. Click on the general tab on the left.

    Here's what mine looks like... Notice it has the C6455 defined. I believe this will cause the symbols to be defined appropriately to make c6x.h work properly. Our original versions of the C6000 DSP core did not have the TSCH/TSCL registers, they did not appear until the C64x+ core. Because of this, it's important to select a processor with a C64x+ or later core when choosing.The C645x, or any C66xx will work.

  • Suresh,
    I need to add to my previous post.

    I had meant to state that to get TSCL/TSCH support, at a minimum you need to specify -mvc64x+. DSP devices with C64x+ core were the first cores to have the TSCL/TSCH hardware timer. However, if you are compiling for the C66xx DSP core, you have to specify -mv6600 to get all the benefits of the C66x DSP core versus the C64x+ core. I should have mentioned this because if you just use the C64x+ compiler switch, the code will still run on a C66x DSP but not as efficient. If you're benchmarking on the C66x DSP then you need to use the -mv660 compiler switch.

    Sorry for the confusion.

    -Brad