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/tm4c129encpdt: CCSv7: Exclude From Build (and other project settings) not saved

Part Number: TM4C129ENCPDT
Other Parts Discussed in Thread: EK-TM4C129EXL, TM4C1294NCPDT,

Tool/software: Code Composer Studio

Using CCSv7 Version 7.1.0.00016, I have a project with four build configurations:

Debug

Debug__GNU

Release

Release__GNU

The two build configurations ending in __GNU are built with GCC; the other two are built with TI compiler.

Therefore the project contains two different linker scripts and two different C startup files.

When building with GCC I need to exclude from build the two files needed for TI; when building for TI I need to exclude the two files needed for GCC.

Unfortunately this is not saved for the two TI configurations. The GCC configurations remember not to use the TI configurations' linker script and C startup file, but the TI configurations keep trying to include the GCC linker script and C startup file in the built. Telling it to exclude the files works for the current session only. Closing and reopening CCS reverts the TI build configurations to include the GCC files in the build.

I can verify that nothing is changing in the .cproject, .ccsproject, or .project files because those are under version control and SVN shows that the files are unchanged, no matter how many times we tell it to exclude those files from built.

This is not acceptable because our builds depend on the project settings, which MUST be saved and preserved reliably!

We also noticed that sometimes we have to change a setting multiple times in the Project Properties for it to be remembered. Notably adding predefined symbols to the compiler settings sometimes has to be done more than once. If you close the Project Properties and reopen it, symbols that were just added are gone and have to be added again.

  • Additional experimentation has revealed something that will help the development team fix this issue:

    If you right-click files in the Project Explorer and tell it to exclude them from build, those files become grayed out in that build configuration. But this is not written to .cproject and therefore it is forgotten once you close CCSv7.

    However, if you do those same steps (right-click, exclude from build) and then right-click the project, open Project Properties, and make some change, such as moving a compiler symbol up and then back down in the list, just to make the Project Properties dialog recognize that a change has been made, and the close that dialog by clicking OK, then the settings are written to .cproject, including the "exclude from build" that was done previously.

    In other words, .cproject is written when you close the Project Properties dialog. Exclude from build is not set from within that dialog, so the Save logic in CCS is not triggered.
  • Hello,
    The information regarding files to be excluded are stored in the .cproject file (under "<entry excluding" tag). The information should get written to .cproject immediately when you exclude the file in the Project Explorer view. I can see this behavior with my CCSv7.1.0 environment.

    I wonder if it is related to version control and CCS. Are you using any Eclipse plugin for SVN integration? Can you try a simple scenario with a project and files not in version control and see if the .cproject is updated immediately?

    Thanks
    ki
  • I tested whether it might be related to version control. It appears to make no difference.

    I created a new directory without any version control and copied our project into it using the ordinary operating system facilities for copying files. I made sure that no hidden .svn directory was copied. I also created a new empty workspace and imported this non version controlled project into it, to make sure the workspace is not affecting its behavior. Even with all of this, a change to included / excluded files in the Project Explorer is not being saved. (The only way to cause it to save is by using the workaround I described before -- opening project settings, making some change, and applying the change.)

    We do not have any eclipse plugin for SVN integration, or any SVN GUI for that matter. In fact we have always operated SVN directly from the command line.

    We are using CCSv7 version 7.1.0.00016 on Windows 10 Home x64 version 1607 build 14393.1198 with Java 8 Update 131 build 1.8.0_131-b11 (these are the latest versions of all three as far as I know).
  • I was using Windows 7-64 before. I also tried this out on Win10-64 and still could not reproduce.

    Some additional questions:
    -What is your workspace folder path?
    -What kind of account do you have (admin or user permissions)?
    -Can you temporarily disable any antivirus/security software and try again?
    -Can you provide the project and associated source file? It doesn't have to be your actual project but some simple example, as long as you can reproduce the issue.

    Thanks
    ki
  • Workspace folder path: E:\workspace\CCS_Workspace.

    Our projects are located under E:\workspace but are outside the CCS_Workspace folder.

    CCS, the compilers, TivaWare, etc., are all installed under C:\ti.

    My user account (the only user account on this computer) is an Administrator account.

    I have created a test project that reproduces the issue on our end. This was located on our system at drive E:\

    The directories and files in this zip file are as follows:

    TestWorkspace - main directory (was directly under drive E:)

    TestWorkspace\CCS_Workspace - The CCSv7 workspace

    TestWorkspace\Projects - Directory to hold CCSv7 projects

    TestWorkspace\Projects\TestProject - A test project to reproduce the issue

    I created the test project by removing all code except the minimum required to compile, run, and blink a LED at 1 Hz 50% duty cycle. This code runs on a EK-TM4C129EXL LaunchPad.

    I tested quite extensively. To reproduce the issue:

    1. Open the project and switch to one of the TI build configurations (either Debug or Release).

    2. Confirm that the files tm4c129encpdt_startup_gcc.c and tm4c1294ncpdt_gnu.lds, which are for GCC, are not excluded from the build and cause errors.

    3. Right-click in Project Explorer and set "Exclude from build" for those files.

    4. Confirm that this build configuration now builds successfully (I use Project -> Clean to do a full clean build).

    5. Exit and restart CCS

    6. Confirm that the files are no longer excluded from build and cause errors.

    These steps reproduce the issue.

    I just noticed that starting a debug session before step 5 does cause the project to be saved. But doing a clean build without starting a debug session does not.

    Project and CCS Workspace: TestWorkspace.zip

  • Thank you for the excellent testcase. Unfortunately I was not able to reproduce

    I copied the TestWorkspace folder to the root of E:\ on my Win10-64 laptop.

    I then launched CCSv7.1.0 using workspace E:\TestWorkspace\CCS_Workspace

    I saw the MasterHardware project in the Project Explorer view. The active configuration was Release.

    I opened the .cproject in my external editor

    Then, using the Project Explorer, I excluded tm4c129encpdt_startup_gcc.c and tm4c1294ncpdt_gnu.lds files from the Release configuration (which was active by default)

    My external editor notified me that .cproject was modified and if I wish to reload the file. I said "Yes" and noticed a modification to the file on line 87:
    <entry excluding="tm4c129encpdt.cmd|tm4c129encpdt.lds|tm4c129encpdt_startup_ccs.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>

    DId a clean and successful build.

    Shut down CCS and restarted it. Those files remained excluded.

    EDIT: I might have reproduced it once.... but I can't seem to have it happen again. Perhaps I misunderstood something. But most of the time I saw .cproject get written to immediately. I'm not sure what the discrepancy could be. I'll try to get more input from the engineers for more potential causes.

    ki
  • Thank you for the quick reply and for your efforts to track this down. Please keep me posted... If I find anything else that might contribute to it I'll let you know.
  • Ki-Soo Lee said:
    EDIT: I might have reproduced it once.... but I can't seem to have it happen again. Perhaps I misunderstood something. But most of the time I saw .cproject get written to immediately.

    I don't know if it is related but have sometimes seen that when adding settings, such as include paths, than after pressing OK on the project properties dialogue that the changes are not saved. This can be seen that when re-opening the same page of the project properties that the most recent change has been lost.

    Have seen this on a number of CCS versions, but haven't previously reported as never managed to get a repeatable test case.

    The problem seems to happen most often when copying settings from one Configuration to another, which involves changing between different Configurations in the project properties. E.g. just saw the problem several times in CCS 7.2.0.00013 under Windows 10 when copying include paths from the original Debug configuration to a new Debug_GNU configuration.

    Edit: Corrected to saw the problem on Windows 10, not Windows 7.

  • Chester Gillon, thanks for mentioning the issue with project properties that are not saved. I mentioned that in the last paragraph of my original post, but until now I wasn't sure if this issue only affected my system.

    We noticed the same issue when adding include paths and predefined preprocessor symbols. In our setup we also have Debug and Debug__GNU build configuration to use both TI and GCC compilers. That may have something to do with it, as we were also switching back and forth between the build configurations during project setup.