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.

CCSv4 Clean build not really clean build?

Hi all

I am using CCSv4 to compile for the F2810 and have had to occasions today where changes made in a header file have not been incorporated into the build.  The fist time it happened I had changed some strings in my code and when compiled my code didn't work as expected.  Viewing the strings in the debugger showed the previous version of the string.  I tried doing a clean from the project menu assuming that it would discard all built object files and start from scratch.  Of course this assumption led me to waste time looking for problems in my code.  I eventually notcied in the output directory that the file timestamp was wrong from when I last did a build.  Deleteing all the object files and rebuilding gave me the correct operation.  I had the same thing happen again later in the day where the only way to get a clean working build was to delete the obj files.  It appears that it is only a problem if a header file is changed.

Has anyone else come across this?

Vaughan

  • I have the same problem...

  • Are you two using CCS v4.0.0 or have you updated to v4.0.1? I think this may have already been filed as a bug and fixed, but I am not 100% certain that the bug report I see covers this issue as well.

  • I'm using  4.0.1.01000

    So far I haven't found a command that forces a complete rebuild of the project, and I have to delete the obj files.

  • I can reproduce this behavior with CCS 4.0.1. It seems to occur when header files are modified and "Debug Active Project" is used to build project and lauch the debugger. I will submit a bug for this.

    I found that the following methods work to force a rebuild:

    1) Right-click on project and do Clean Project. Then click on "Debug Active Project"
    2) Right-click on project and do Rebuild Project. Then right-click and select Debug As->Debug Session or  click Debug Active Project

  • Hi

    I am using version 4.0.1.01001 and see the bug even when building without using debug, ie. going to the Project -> Clean menu option.

    Vaughan

  • Hi Vaughan, 

    What is your .obj directory set to? Is it the default? Project->Build Options-> Compiler Options-> Directory Specifier. Default is to have "Automatic Mode", which places all .obj in "ConfigurationName" directory below project root. E.g. "Debug" directory. Project clean deletes "Debug" directory. 

    Martin

     

  • That solved my problem. Thanks !

  • Hi Martin

    The project directory was set to a custom path under the main project directory.  I have changed it to automatic and this works fine.  It still seems odd to me that if you give it a custom output directory then the clean project option does not work.

    Thanks

    Vaughan

  • This bug has been addressed and the fix will be available in CCSv4.1.

    - Baltasar

  • I have  Version: 4.2.1.00004 

    Clean does not find the objs

     

    My two configurations are F2833x_RAM and F2833x_FLASH

    The .objs are in the appropriate F2833x_ directory, depending on the active configuration. The debugger pulls the correct .out file. However, clean does not know where to find the .objs and .out files.

    The directory specifier is set to automatic (which tells it to look in . for objs) but setting this to manual and pointing them to the appropriate directory doesn't fix the problem either.

    The variable "ConfigName" is set correctly.

    What else can I configure to get clean to work?

    Thanks

  • Could you do a clean, and then show me the text from the Console view?  That text echoes every command during the clean operation.  Check that all the paths to obj files are correct in each 'DEL' command.  If any of the 'DEL' commands fails to find its target file, an error should be printed in red colour (in the same Console view).

    FYI, the issue originally reported in this thread has already been resolved, so whether the directory-mode is set to 'manual' or 'automatic', the 'clean' operation is expected to clean all the generated obj files.

    - Baltasar

  • The output from "Clean"...

    **** Clean-only build of configuration F2833x_FLASH for project HVPM_Sensorless_2833x ****

     

    C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake -k clean

    DEL /F "HVPM_Sensorless_2833x.out"

    The system cannot find the file specified.

    gmake: [clean] Error 1 (ignored)

    DEL /F ".\DSP2833x_ADC_cal.obj" ".\DSP2833x_CodeStartBranch.obj" ".\DSP2833x_DMA.obj" ".\DSP2833x_GlobalVariableDefs.obj" ".\DSP2833x_usDelay.obj" ".\HVPM_Sensorless-DevInit_F2833x.obj" ".\HVPM_Sensorless.obj" ".\cl.obj" ".\ePwm4_Excitation.obj" ".\Debug.obj" ".\circular.obj" ".\sma.obj" ".\serial.obj" ".\resolver.obj" ".\Force.obj" ".\ert_main.obj" ".\f_meas_Data.obj" ".\f_ref_data.obj" ".\FIRFilter.obj" ".\fir16.obj" ".\iir16.obj" ".\iir32.obj" ".\cancomm.obj" ".\CANDriver.obj"

    The system cannot find the file specified.

    gmake: [clean] Error 1 (ignored)

    DEL /F ".\DSP2833x_ADC_cal.pp" ".\DSP2833x_CodeStartBranch.pp" ".\DSP2833x_usDelay.pp" ".\Filter\fir16.pp" ".\Filter\iir16.pp" ".\Filter\iir32.pp"

    The system cannot find the file specified.

    gmake: [clean] Error 1 (ignored)

    DEL /F ".\DSP2833x_DMA.pp" ".\DSP2833x_GlobalVariableDefs.pp" ".\HVPM_Sensorless-DevInit_F2833x.pp" ".\HVPM_Sensorless.pp" ".\cl.pp" ".\ePwm4_Excitation.pp" ".\Utilities\Debug.pp" ".\Utilities\circular.pp" ".\Utilities\sma.pp" ".\Serial\serial.pp" ".\Resolver\resolver.pp" ".\Force_Controller\Force.pp" ".\Force_Controller\ert_main.pp" ".\Force_Controller\f_meas_Data.pp" ".\Force_Controller\f_ref_data.pp" ".\Filter\FIRFilter.pp" ".\CAN_Comm\cancomm.pp" ".\CAN\CANDriver.pp"

    The system cannot find the file specified.

    gmake: [clean] Error 1 (ignored)

    ' '

    Build complete for project HVPM_Sensorless_2833x

     

     

    FYI I started with the HVPM_Sensorless_2833x project from TI but have since added/changed a lot of code.

    Thanks

  • I think in your case gmake actually can't find the 'DEL' command.

    What operating system are you using?  Also, can you open the Debug/makefile file, and check if you have the line "SHELL = cmd.exe" near the top?

    Also, could you please try creating a simple new project, and see if 'clean' works for it?

    Thanks,

    - Baltasar

  • I am running Windows XP

    SHELL = cmd.exe is at the top of the makefile

     

    I created a new project ("Test_project") and created the file Test_project.out in the Debug directory. This is the output of clean:

    **** Clean-only build of configuration Debug for project Test_project ****

     

    C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake -k clean

    DEL /F "Test_project.out"

    The system cannot find the file specified.

    gmake: [clean] Error 1 (ignored)

    ' '

    Build complete for project Test_project

     

    It does sound like it is not finding the del command. If I run cmd.exe and execute DEL, I get:

    The syntax of the command is incorrect.

     

    So there is finds it but obviously the syntac is incorrect. I wonder why CCSv4 can't find it. I will dig into the internal env variables and see if anything stands out

    Thanks

  • Could you try one more thing - build your project first (so that the obj and out files are created), then open the cmd window, cd to your build-directory (Debug/ or Release/), then run the 'DEL /F "Test_project.out"' command from there.  Does that properly delete the file, or does it output the same error message?

    - Baltasar

  • It deletes Test_project.out

     

  • Could you verify that your PATH environment-variable contains the C:/Windows/System32/ directory?  That directory should be the only one on the path to contain the executable named 'cmd.exe'.

    Also, can you please check if you have the SHELL environment-variable defined?

    Have you encountered this problem on the same machine before?  Or, were you ever able to properly clean a project on the same machine before?

    - Baltasar

  • I assume you mean my Windows environment and not variables defined within CCSv4?

    In Windows, the PATH variable does contain c:\Windows\system32

    I am not sure if it is the only place that has cmd.exe. In Linux I know how to tell ;)

    I do not see SHELL defined within the Windows environment.

    Thanks