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.

Compiler/TMS320C6701: C6701 - Compiler v4.x: use compiler in a newer CCS version?

Part Number: TMS320C6701

Tool/software: TI C/C++ Compiler

Team,

The CGTools 4.x for C6701 were provided as part of CCS 2.20.

Is there a way to use this compiler version on a newer CCS version like CCS 3.30 or CCSv4? How?
I know that C6701 is not supported anymore started with CCS 6.x.

Thanks in advance,

Anthony

  • An important warning ... Newer versions of CCS were never tested with older versions of the compiler tools.  It is likely that everything will work just fine.  But you might run into an issue.  One possible example: The CCS build interface might presume the underlying compiler has an option that, because it is an older version, is not present.  Generally speaking, the farther apart in time the releases, the more likely it is some issue will arise.

    To learn how to configure CCS to use a different compiler, please see the wiki article Compiler Installation and Selection.

    Note that the last C6000 compiler to support C6700 devices is version 7.4.x.  Please consider upgrading to the latest 7.4.x version, which is presently 7.4.20.  You will benefit from multiple years worth of bug fixes.

    Thanks and regards,

    -George

  • I have installed CCS 4.0.2.01003 in c:\ti4. I have installed CCS 2.20 in c:\ti_ccs2. I added c:/ti_ccs2/c6000/cgtools (which contains bin, lib and include for cgtools 4.32) to CCS4's tool discovery path as described in processors.wiki.ti.com/.../Compiler_Installation_and_Selection. There isn't a "refresh" button and CCS4 does not pick up the cgtools version 4.32 .

    Is there a step I've missed?


    If at all possible, I'd rather not change compilers because that means retesting everything to a low level, including the parts of the software that do not change.

    Even so, I did try 7.4.20 - the resulting executable works functionally but does not meet its real-time deadlines. Execution time for most of the code is the same or slightly slower. Unfortunately, the portions that do the heavy math slowed by more than a factor of 2 (~1350us vs ~600us), and they are on the critical path. I configured CCS to give 7.4.20 the same compiler settings as far as possible (-o3 -ms2, no debug info, far-aggregates data model) to the original project. I have not tried to compare the assembler output of 7.4.20 against 4.32


    Regards

    Michael

  • Michael Tempest said:
    Is there a step I've missed?

    No. I was wrong earlier when I said you could use much older compilers with newer versions of CCS.  You can use older compilers, but there is a limit.  Please see this wiki article.  In particular, note that C6000 version 5.3.x is the oldest compiler supported by CCS version 4.x .  I apologize for the error.  

    Is it practical for you to do the build outside of CCS, then use CCS only to debug?  Or, do the build with the older CCS, then debug with the newer CCS?

    Regarding slower performance of code generated by compiler version 7.4.20 ... It is normal to see differences when changing compiler versions.  But it is unusual to see the generated code run this much slower.  

    Michael Tempest said:
    I have not tried to compare the assembler output of 7.4.20 against 4.32

    Consider using the loopdiff tool described in the wiki article Compare Loop Performance Across C6000 Compilers .  loopdiff makes it easy to identify which loops have worse performance.  Then you can focus your effort on a fairly small part of the code.  Perhaps we can discover the one or two main reasons the performance got worse.

    Thanks and regards,

    -George

  • Even if you choose not to pursue using 7.4.x, the compiler team would greatly appreciate examples where the newer compiler gets worse performance. We definitely want to address such issues when possible.