We have an application of more than 300K C/C++ lines. The application is spread over 300 source files. even if we change only one .cpp file, the build process compiles all the files.
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.
We have an application of more than 300K C/C++ lines. The application is spread over 300 source files. even if we change only one .cpp file, the build process compiles all the files.
Dr. Yehuda Singer,
I am using CCS 4.2.0.10012, so it sounds like I need to upgrade. My CGT version is 7.0.4 like yours, and I did not find this problem with my build.
Attached is a simple C++ project with 6 source files. When I edit one file and click Build Active Project, only that one cpp file gets compiled, then the link occurs and the executable is loaded.
I suspect you have some option selected that is causing this, such as dependencies or something like that.
We will have this thread moved to the Code Composer forum to be addressed there. Please wait until you get the Moved email before replying.
Regards,
RandyP
Dear Randy
Thanks. Your example works fine. Now to my problem:
1. We use the BIOS6.
2. We use the EVMC6472.
We have to build an executable file for that target.
The project is much bigger. If you like, I can send it to you.
Dr. Yehuda Singer,
At this point, someone new will need to address this. Most likely, there is a configuration portion of your project that can help them figure out what is going on. I am just a user, like you, and I have not moved to BIOS6, yet, although I have worked a lot with the C6472.
My guess right now is that there are interdependencies between for parts than you may have intended. This could be an effect of the BIOS6 or XDC tools, and that could be proven out by making a much smaller project with fewer files than your huge project. That is just an idea of how you might be able to close in on a root cause.
The other possibility of which I am aware is the setting of project dependencies. Since you are building this for a 6-core device, you may have 6 or more inter-dependent projects. I remember doing this once and finding that I had overstated the dependencies which caused more builds to start than were necessary. Are you using several projects with dependencies?
Regards,
RandyP
Dear Randy
Thanks for your answers. I will put some remarks on our project:
1. The aim is to develop a new paradigm.
2. The application is composed of 6 tasks
3. We want that every task can be execute on any processor when it is ready.
Thanks,
Yehuda
Yehuda,
If you could export your project(s), I suspect there are 2 projects 1 for your app and one that is your RTSC config project, I can try to reproduce locally. We do have some known cases where CCS is doing a rebuild all where it is not required.
To export your projects go to the file menu, select export, under General pick Archive file. This will bring up a dialog where you can select the projects you wish to export. Skip the .obj and .out files to keep the zip smaller.
You can click on my username and send me a private message if you wish to keep the code confidential.
Regards,
John
Dr. Singer,
You have marked several of these posts as Verified Answers. Did you get your problem resolved off-line with JohnS? If so, please reply back with even a short statement about what was done to fix the problem.
I have not moved to BIOS6, yet, but I have heard that it has some new features or support for our multi-core devices.
So I would like your opinion as a BIOS6 user: Did you find BIOS6 helpful for the multi-core processing environment?
Regards,
RandyP
Dear Randy,
JohnS help me a lot. The BIOS6 supports new features for the multi-core devices. Al my problems relate to BIOS6, and its integration with the development tools.
I will be happy to talk with you next week.
Regards,
Yehdua
Dr. Yehuda,
Are you still having issues with the link step failing for memory allocation?
If so then please try the following.
If using version 7.0.4 of compiler tools:
in "build properties" > "Tool Settings Tab" > "C6000 compiler"
change "Command" from this: "${C6000_CG_ROOT}/bin/cl6x"
to this: "${C6000_CG_ROOT}/bin/cl6x" --keep_unneeded_types=false
If using version 7.0.3 of compiler tools:
in "build properties" > "Tool Settings Tab" > "C6000 compiler"
change "Command" from this: "${C6000_CG_ROOT}/bin/cl6x"
to this: "${C6000_CG_ROOT}/bin/cl6x" --keep_unneeded_types=false
also, update "build properties" > "Tool Settings Tab" > "C6000 Linker" > "Symbol Management"
select the 2nd to last option for: "No type merging in symbolic debugging information (--no-sym_merge, -b)
NOTE: above linker option only valid for coff (not valid for elf).
Please let me know if this works. If not then we can try some other options.
Thanks and sorry for your trouble.
Greg
Dear Greg
Thank you for your answer.
I have moved to CCS5.0 and the compiler beta version 7.2.
I work with Windows/XP.
When I do not use symbols, there is no memory allocation problems. But it is almost impossible to debug in binary.
Another problem: in the OOBDemo_Bios6, there is a call to EVM_init() via the configuration file. I use the CSL library, but the symbol remains undeffined.
Thanks and best regards,
Yehuda
Dr Yehuda,
Were you able to build and debug your project using either of the options I mentioned earlier?
In particular did selecting build option for "C6000 linker" "symbol management" "No type merging in symbolic debugging information --no_sym_merge -b) work to allow for a build that you could debug?
Regards,
Greg
Dr. Yehuda,
I was able to build and link your project and then do debug within CCS 4.2 and compiler 7.2.
I had to set below linker option (see image at end):
- right click on RISC project and select build properties
- then go to Tool Settings => C6000 Linker => Symbol Management
- select "No type merging in symbolic debugging information (--no_sym_merge, -b)
Linking was successful and generated a 40Mb .out file which I was then able to debug using CCS 4.2
This wiki entry has more information on type merging:
http://processors.wiki.ti.com/index.php/Linker_Runs_Too_Long
Regards and Thanks,
Greg
Compiler version: 7.2.0B1
I cut/paste from "Build properties" fields for "C6000 Compiler" and "C6000 Linker".
Greg
Dear Greg,
I refreshed the project. I included the "EVM_init() function and all its related header files.
Still Ihave problems with the linker.
PLease tell me whether I can send you the project (all the souirce and setting files). NOt the objects.
Best regards,
Yehuda
What linker errors are you getting?
Certainly please send the project.
To export your projects go to the file menu, select export, under General pick Archive file. This will bring up a dialog where you can select the projects you wish to export. Skip the .obj and .out files to keep the zip smaller.
To send the code only to me, click on my username and then "start conversation" to generate a private message.
Regards,
Greg
Dr. Yehuda,
Yes I received it and tried to build. I’m getting errors about missing evm6472 components.
However, I was able to build the prior one you sent to JohnS. I was able to build and link when using linker option –b (--no_sym_merge)
I'm working on the linker memory allocation errors from the prior project you submitted, however, I’m trying to find the right contact within TI to best help you with your build issues on your latest project.
Regards,
Greg
Dr. Yehuda, I'm still trying to find the right contact. Will let you know soon. Thanks greg
I'm still trying to get a better local resource to work with you.
Have you tried linking your project using linker option -b?
I was able to successfully build and link your project. and the out file was debuggable.
Regards,
Greg
Dear Greg
Great.
Can you send me the project you have succeeded?
Also please tell me if there is new versions. I work with the Code generation 7.2 on Windows XP.
Please tell me also whether to migrate to Wiindows7.
Thanks,
Yehuda
Yehuda,
The latest 7.2 compiler release resolves the segmentation fault we were seeing on Win7 64bit.
Regards,
John
Yehuda,
The download link for all compiler versions is in the section Downloads of the Compiler category in the wiki:
http://processors.wiki.ti.com/index.php/Category:Compiler
Hope this helps,
Rafael
If you follow the link Rafael provided you eventually get to here where you can get the 7.2.2 compiler:
https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm
Note that you can also get this from within CCS by checking for updates and selecting to search for new features.
Regards,
John