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.

.out bigger from CCS v5.1 compared to that in v3.3

Hi,

I have recently migrated to  CCS v5.1 from  v3.3. But on building the .out is bigger.

I used the cg_xml tools to check the reason but could not get much help.

I have attached the command file and the map files generated.

Please let me know why this might be so. Also I notice that the .text section is the one affected mostly.

Also, I also find the below warning on v5.1 which I donot see in v3.3.

*********************************************************************************************************************

<Linking>
>> warning: creating output section RamBlockCD without SECTIONS specification6574.mapfiles.zip
>> warning: creating output section Slp_variables without SECTIONS specification
>> warning: creating .stack section with default size of 0x800 (2k) words.

Use -stack option to change the default size.

*******************************************************************************************************************

Regards,

Aadishri

0602.mapfiles.zip

  • Both map files claim the linker used is "TMS470 COFF Linker PC v4.1.4", which suggests that the same version of the compiler was used to compile and link the program both in 3.3 and 5.1.  The fact that not one of the RTS library functions changed size perhaps further supports this hypothesis.  We should figure out for sure whether this is the case before proceeding.  The linker used in CCS 5.1 should report itself as "TMS470 Linker PC v4.9.1" or above.

    Your map files demonstrate a 1.8% increase in the .text section, generally spread evenly throughout user modules.  This shows that your project is sufficiently large and heterogeneous that it's very unlikely that there will be a simple answer.  It's impossible to say what might cause the code size growth without knowing the characteristics of some of these modules. This means we would need to see a compilable test case representing one of the modules, preferably one that is small and had relatively large code growth, like the module cmm.obj from library libs.lib, which went from 0xe8 to 0x14c, an increase of 43%.

  • If you suspect code size has increased, use the method described in this Wiki article to find the functions that increased code size the most.  

    As for this ...

    Aadishri G S said:
    <Linking>
    >> warning: creating output section RamBlockCD without SECTIONS specification
    >> warning: creating output section Slp_variables without SECTIONS specification
    >> warning: creating .stack section with default size of 0x800 (2k) words.

    Use -stack option to change the default size.

    My guess is you have always had these problems.  But if you do not build with --warn_sections (or -w for short), you do not see these messages.  Somehow, you build under CCSv3.3 without --warn_sections, and you build under CCSv5.1 with --warn_sections.

    You need to address these issues.  Those sections are being placed in memory using the linker's default algorithm.  It is not wise to leave that decision to the linker.  You want to be sure these sections are explicitly created and allocated in your linker command file.

    Thanks and regards,

    -George