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
A few days ago I switched from CCS4 to CCS5.
Before the linking time was quit fast.
After the migration togehter with my identical project I have a much higher linking time.
Let's say before it was a few seconds (2..3s) and now I have almost one minute.
I compared the compilation and linking parameters.
But they are identical.
Do you have any suggestions?
Thanks a lot
Best regards
Urs Zbinden
Urs,
Could you provide some additional details to help us look into this?
- Which target device are you building for, (ie) which compiler is being used - cl6x, cl55 etc?
- Have you confirmed that the extra time is coming from the link step and not the compile step?
- What compile/link options are being used?
- Are there C++ source files in your project or only C files?
Hi
Sorry for the delay. I was out of the office for some days.
Here the answers to your questions:
a) We are using from TI the DSP TMS320F28234 with cl200 (TI v6.0.2) in CCS5. Before in CCS4 it was cl2000 (TI v5.2.11)
b) The long delay is really in the linking part (~70s). The compilation time is more or less the same between CCS4 and CCS5
c) We use only c source files (no c++)
d) In the following I give you the compiler and linker commands..
Compiler:
-v28 -mt -ml -g --define="cHW=6440" --define="_DEBUG" --define="LARGE_MODEL" --include_path="C:/CCStudio_v5.1/ccsv5/tools/compiler/c2000/include" --include_path="C:/Dev/EPOS3/Trunk/EPOS_Firmware/Sources/inc" --include_path="C:/Dev/EPOS3/Trunk/EPOS_Firmware/Libraries/RTE/inc" --verbose_diagnostics --diag_warning=225 --diag_remark=70 --display_error_number --optimize_with_debug --obj_directory="C:/Dev/EPOS3/Trunk/EPOS_Firmware/build/obj/6440" --list_directory="C:/Dev/EPOS3/Trunk/EPOS_Firmware/build/lst/6440"
Linker:
-v28 -mt -ml -g --define="cHW=6440" --define="_DEBUG" --define="LARGE_MODEL" --verbose_diagnostics --diag_warning=225 --diag_remark=70 --display_error_number --optimize_with_debug --obj_directory="C:/Dev/EPOS3/Trunk/EPOS_Firmware/build/obj/6440" --list_directory="C:/Dev/EPOS3/Trunk/EPOS_Firmware/build/lst/6440" -z -m"Epos2Code.map" --stack_size=0x300 --verbose_diagnostics --warn_sections -i"C:/CCStudio_v5.1/ccsv5/tools/compiler/c2000/lib" -i"C:/CCStudio_v5.1/ccsv5/tools/compiler/c2000/include" --reread_libs --absolute_exe --rom_model
Hope this helps
Could you try adding the -b linker option and see if that helps? More info on this option is in the C28x Assembly Language Tools Users Guide, section 7.4.19 and this wiki page: http://processors.wiki.ti.com/index.php/Linker_Runs_Too_Long
If this does not help, we may need to get your project so we can further analyze the reason for increased link times.
I added the linker option -b and the linker works very fast now.
But the code size changed from ~1kB to ~6kB.
My question is now:
Is this modification just a workaround?
What's the difference then to CCS4 where it was not necessary to define such a linker option -b?
Thank you very much for the feedback.
Best regards
Urs
Urs Zbinden63065 said:But the code size changed from ~1kB to ~6kB.
That is an expected side-effect of using the -b option.
Urs Zbinden63065 said:What's the difference then to CCS4 where it was not necessary to define such a linker option -b?
As you noticed, CCSv4 used a different version of the codegen tools. There were probably some changes made to the 6.0.x linker that is contributing to the increased link time. Could you share your project with us so the compiler team can analyze the reason for the increased link time and see if any improvements can be made in that area? You can attach the project here, or if you prefer to not post it publicly you can share it privately with me.
Note that the _code_ size did not change (or changed very little). The size of the executable (.out) file is larger, but the extra size is taken up by additional debug directives (which are not loaded onto the device). The -b option skips a step in the linker that compacts the debug directives but which in some cases can take a lot of compute time.
I should have mentioned that there is a short article about linker type merging on the wiki at http://processors.wiki.ti.com/index.php/Linker_Runs_Too_Long.