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.
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 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 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
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
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