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.

Project Import from CCSv3.3 to CCSv4.2.1 does not keep the file specific build options in tact

Other Parts Discussed in Thread: CCSTUDIO

My observation is that new CCSv4 IDE which imports the GOOD OLD ccsv3.3 .pjt file to give new CCSv4 project files. Apart from the various cleanup things I have to do to get it going, it gives a biggest surprise the it is not keeping my file specific build options. I have noticed this because my performance numbers did not match.

I have used earlier versions last year to do similar job, then I have not seen this problem.

Give a quick summary. Lets say my project level has -g and I do not want my critical functions to have -g and add -o3. In the new project, I see theat my critical funcion gets both -g & -o3 where I wanted only -o3.

I have spent about a week's time to create 104 projects using the import method (trusted the tool) and I found this issues only when I was doing BFT testing. I also noticed there is no easy way to do search and replace a pattern in the .cdtbuild file.

Any quick solution to address would save a ton of time.

  • Ravi,

    Sorry for the troubles you have had with this issue. I was able to reproduce this, it does seem to be a bug in the CCS project migration wizard. It keeps the file specific options that are added but also seems to keep the project level option (in this case -g) even though it was removed. I submitted this as bug # SDSCM00039459.

    ravi said:
    I also noticed there is no easy way to do search and replace a pattern in the .cdtbuild file.



    You should be able to open the .cdtbuild file in any editor and do a Find/Replace.

  • Could you work a script and give me to do the find and replace job. I have 106 projects and each project may have more than 4 files on average. I can give you all the project files, if you can do the search and replace. That would be nice.

    I have some projects created with 4.1.0 or earlier ones for which I found some patterns like they have some extra lines for the files like the one shown below... Then I was able to replace the "DEBUGGING_MODEL.SYMDEBUG__NONE" with "DEBUGGING_MODEL._none".

    <resourceConfiguration exclude="false" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1496516749./pdschScrambler_test_le/LTELIB_pdschScrambler.c" name="LTELIB_pdschScrambler.c" rcbsApplicability="disable" resourcePath="/pdschScrambler_test_le/LTELIB_pdschScrambler.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C6000_7.0.exe.compilerDebug.665116043./pdschScrambler_test_le/LTELIB_pdschScrambler.c">
    <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.0.exe.compilerDebug.665116043./pdschScrambler_test_le/LTELIB_pdschScrambler.c" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.0.exe.compilerDebug.665116043">
    <option id="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.DEBUGGING_MODEL.1787859965" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.DEBUGGING_MODEL.SYMDEBUG__NONE" valueType="enumerated"/>
    <option id="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.OPT_LEVEL.1704332637" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.OPT_LEVEL.3" valueType="enumerated"/>
    <option id="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.DEFINE.634254852" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.DEFINE" valueType="definedSymbols">
    <listOptionValue builtIn="false" value="&quot;TMS320C66X&quot;"/>
    <listOptionValue builtIn="false" value="&quot;_DEBUG&quot;"/>
    </option>
    <option id="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.DIAG_WARNING.1065417272" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.DIAG_WARNING" valueType="stringList">
    <listOptionValue builtIn="false" value="&quot;225&quot;"/>
    </option>
    <option id="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.DEBUG_SOFTWARE_PIPELINE.1274323320" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.DEBUG_SOFTWARE_PIPELINE" value="true" valueType="boolean"/>
    <option id="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.OPTIMIZER_INTERLIST.389167426" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.OPTIMIZER_INTERLIST" value="true" valueType="boolean"/>
    <option id="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.KEEP_ASM.308236189" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.0.compilerID.KEEP_ASM" value="true" valueType="boolean"/>
    </tool>
    </resourceConfiguration>

    However, the projects I imported using 4.2.1 CCS have format like shown below. There are no pattern to do search and replace.

    <resourceConfiguration exclude="false" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.963441613./scrConstMapper_le/LTELIB_scrConstmapper.c" name="LTELIB_scrConstmapper.c" rcbsApplicability="disable" resourcePath="/scrConstMapper_le/LTELIB_scrConstmapper.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C6000_7.2.exe.compilerDebug.489479357./scrConstMapper_le/LTELIB_scrConstmapper.c">
    <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.2.exe.compilerDebug.489479357./scrConstMapper_le/LTELIB_scrConstmapper.c" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.2.exe.compilerDebug.489479357">
    <option id="com.ti.ccstudio.buildDefinitions.C6000_7.2.compilerID.OPT_LEVEL.1552671143" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.2.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.2.compilerID.OPT_LEVEL.3" valueType="enumerated"/>
    <option id="com.ti.ccstudio.buildDefinitions.C6000_7.2.compilerID.KEEP_ASM.1337910967" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.2.compilerID.KEEP_ASM" value="true" valueType="boolean"/>
    </tool>
    </resourceConfiguration>

  • Ravi,

    We will fix the migration issue for CCSv4.2.4 and v5.1.0 - the bug only affects the corner-case "-g" option, it does not affect all file-specific settings in general.

    Until then, as Aarti recommended, you can use search-and-replace in .cdtbuild files to add a "DEBUGGING_MODEL._none" option setting.  Please make sure your projects are either source-controlled, or backed up in some other way, before you perform any manual modifications of the .cdtbuild file, as this can corrupt your projects.

    You can perform the search-and-replace to add the desired line as follows:

    1. For any *one* of your projects, make a temporary copy of the .cdtbuild file.
    2. Set the Debugging Model option to an empty selection using the Properties dialog in CCS for *one* of your source files.
    3. Then compare the new .cdtbuild file with the previous version (you can do it in Eclipse by selecting the two files in the C/C++ Projects view, then selecting Compare With > Other selected files from the context menu).  You will see that a new line has been added into the .cdtbuild file.
    4. Now, you said that all these files also set the "-O3" option, so you can use that line as the pattern to search for - search for the line setting the OPT_LEVEL option in all remaining .cdtbuild files, and replace that line with two lines - the same line setting the OPT_LEVEL option, and the new line setting the DEBUGGING_MODEL option.  You can perform the search and replace in CCS through the Navigate > Search... dialog - it has a Replace... button on the bottom.  This dialog works on multiple files.  One limitation is that the replacement text is expected to be a single line - to workaround this limitation, just merge the two lines into a single line, it would still result in valid XML.

    Please note that each ID in the .cdtbuild file contains the ISA-family and the first two segments of the CGT version - eg. "C6000_7.2".  If all your projects are of the same ISA-family, and use the same CGT version, then you'd only need to search-and-replace once.

    - Baltasar

  • Thanks for the information. But, these steps are more painful process for my case. In each .cdtbuild files I could have more than one file and some of them are test bench files which should not be touched and only LTELIB files need to be changed. I spent time to do the changes using CCS GUI and I had better control of what I could do and less chance of making syntax mistakes.

    Couple of Inputs/Suggestions:

    1) Maintaining a set of 4 files per project with version specific formats is not really productive in my opinion. I love the style of .pjt files and I wish to see a simpler solution in this regard in future. The information one would want to keep as part of project definition is simple things like the list of files with search paths, libraries if any, and some file specific settings. That's all as a developer I care, why should I spend (rather waste time) time I making the format issues which potentially change from version to version. I have seen in the last few years working on various CCSv4 versions starting from beta3, every time I have to use next one we are not sure about the output of the projects.

    2) I strongly suggest to make a case to come up with a simple method for user interface. Otherwise we are defeating the purpose of IDE in my opinion. It's becoming a burden to support projects. If the project description is kept in a single file (similar to .pjt) and when it is imported to CCSV4/5 the creation of the 4 files could be done using some methods like I got suggestions to use command line tool which could be one method. I am willing to do the testing and support with example if you need any.