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.

CCS/CC3200: BIG code size increase with CCS 7.4.0

Part Number: CC3200

Tool/software: Code Composer Studio

I have been developing for CC3200 using CCS 7.2.0

I installed CCS 7.4.0 in order to test out the CC3220 SDK

I had hoped to keep my existing setup, however after installing CC 7.4.0 (into a new directory), CCS 7.2.0 now won't open.

So, I tried to compile my existing project using CC 7.4.0 - I installed the same compiler I had been using ( Ti 5.2.8 )

I started getting errors that the code image won't fit into available memory, and I had to juggle the 

SRAM_CODE and SRAM_DATA segments - this I expected.

It turns out the code size has increased from 145840 bytes to 148048

This is really bad. How can the same code with the same compiler and optimisation settings require 2208 byes more code space with a new version of the IDE?

  • Hi Tim,

    Tim Redfern said:
    I had hoped to keep my existing setup, however after installing CC 7.4.0 (into a new directory), CCS 7.2.0 now won't open.

    Multiple CCS versions should be able to peacefully coexist in different directories. What exactly is the issue when you try to launch CCSv7.2.0?

    Note that it is not recommended to share workspace folders between multiple versions of CCS if the CCS versions are different. I'm wondering if this happened in your case

    Tim Redfern said:
    This is really bad. How can the same code with the same compiler and optimisation settings require 2208 byes more code space with a new version of the IDE?

    Short answer - it shouldn't. The IDE version should not matter if the compiler versions are the same and the same exact options are being passed to the compiler. Do you know which sections have grown? Do you have the build output for both to do a diff?

    Thanks

    ki

  • Perhaps your linker options changed somehow? Dead code removal requires compiler to place functions and data into their own sections, and linker to remove unused sections. In GCC the compiler options are -ffunction-sections, -fdata-sections and the linker option is --gc-sections.
  • Hi, thanks for the reply.

    The fact that CCS 7.2.0 stopped working was my mistake, I changed the name of the /Applications/ti install directory to save my old setup.

    I installed CCS 7.4.0 into the folder /Applications/ti7.4, however when I first ran it, it searched the /Applications/ti folder and offered to import the old versions of xdctools - I think this is undesired behaviour and seems to have been the cause of the problem.

    I then opened my existing workspace, installed the 5.2.8 compiler, did a build clean and build - the build had the extra 2.2k file size with no other changed settings.

    I then opened CCS 7.2.0 and tried to recompile the project - and now this build had the extra file size! Something weird going on for sure.

    We had previously noted that using 7.3.0 on a fresh install and fresh download of the workspace repo, Ti compiler 5.2.8 creates a bigger sized binary than 7.2.0.

    However, with a new install of CCS 7.4.0 and avoiding re-opening the workspace with the older CCS, the project build to the correct size.

    Tim
  • Something about that workspace is evidently changing the way your project is being compiled and / or linked.

    I would do a build with the old setup and then copy and paste the build transcript from the console to a file.

    Then I would do a build with the new setup and save that build transcript as well.

    Then I would very carefully compare the two, specifically which compiler and linker versions were invoked and which command line arguments were actually given to the compiler and linker, to figure out what changed.

    But that's just me. :-)