Windows Code Composer Studio - Compiler Tools different behaviours when installing from Resource Explorer or Help menu

Other Parts Discussed in Thread: SYSCONFIG

Dear TI Support,

I'm using Code Composer studio V10.2 automagically updated from a full V10.1 installation.

When I install a compiler from CCS Help menu (via "Install Code Generation Compiler Tools..." or "Install GCC ARM Compiler Tools"...), they end up in the "CCS_BASE\ccs\tools\compiler" directory. They appear under the "Discovered Tools" in the "Compilers" configuration page of CCS preferences. However, they are not shown under the "Discovered Products" section in the "Products" configuration page of CCS preferences. I can then select them in the "Compiler version" field of the "Project" tab under the "CCS General" page of projects properties.

However, if I try to install an SDK from the Resource Explorer, the package manager of the resource explorer says that the compiler is not installed, and gives the option (or forces, depending on the dependency level) to install it. Then, they end being installed in the "C:\TI" directory, together with the SDKs and the "CCS_BASE" directory. Now, they appear listed as "Discovered Products" in the "Products" configuration page of CCS preferences, and I can add them in the "Products" tab under the "CCS General" page of projects propierties.

Moreover, some environment variables are now visible like (for GCC) "COM_TI_ARM_GNU_INSTALL_DIR" (filled with the correct installation path), "COM_TI_ARM_GNU_INCLUDE_PATH" or "COM_TI_ARM_GNU_LIBRARIES" (theese two void, sadly), only for compilers installed as "Products" and added to a project, and not for compilers installed from "Help->Install..." which anyways are not listed as "Products".

When diffing both installations, they are exact duplicates of each other (save for a small "metadata" file for the version installed from the Resource Explorer, where the version and a small description are stated).

If I use the package manager from the resource explorer I can uninstall any version of the installed compilers from the resource explorer. However I can not uninstall older versions of compilers using the CCS "Help->About Code Composer Studio" menu, as only the latest one is shown, and anyways it doesn't remove the compiler directory from the ccs installation when uninstalling. Moreover, the uninstalled compiler is still listed under the "Compilers" configuration page of CCS preferences and I can select it for projects, but when installing again from "Help-> Install...", they appear as uninstalled. So I have my "compilers" folder full of older compiler versions.


This is annoying as the same happends with XDC-tools, and sometimes, when a new SDK is released, the Resource Explorer complains about the latest version not being available (maybe not being released yet to Resource Explorer), even if it has been manually installed and appears in the "Products" configuration page of CCS-studio.


What is the "correct" (cannonical) way to install new compilers?

How can I uninstall older compilers installed from the "Help->Install..." menu?

How can I tell the Resource Explorer of packages I have installed manually?

What is the supposed use (if any) of having the compiler appear as "product", and export (currently void) environment variables? Should I stick to GC_TOOL*** variables?

Is this just a "transition era" to a new workflow from variables and tools installations?


By the way, is it possible to install newer (than 9.2.1) versions of the Linaro toolchain? Or are they specially packaged and released by TI so they export thoose GC_TOOL_ variables and are correctly discovered by CCS?


Thank you and best regards


  • Hello,

    When I install a compiler from CCS Help menu (via "Install Code Generation Compiler Tools..." or "Install GCC ARM Compiler Tools"...), they end up in the "CCS_BASE\ccs\tools\compiler" directory. They appear under the "Discovered Tools" in the "Compilers" configuration page of CCS preferences. However, they are not shown under the "Discovered Products" section in the "Products" configuration page of CCS preferences

    The compiler needs to be packaged as a "product" for it to appear there. However, all compilers, regardless of how packaged, will appear in the list of discovered compilers.

    However, if I try to install an SDK from the Resource Explorer, the package manager of the resource explorer says that the compiler is not installed, and gives the option (or forces, depending on the dependency level) to install it. Then, they end being installed in the "C:\TI" directory, together with the SDKs and the "CCS_BASE" directory. Now, they appear listed as "Discovered Products" in the "Products" configuration page of CCS preferences, and I can add them in the "Products" tab under the "CCS General" page of projects propierties.

    Resource Explorer would only detect compilers that have been packaged as a "product". Compilers from Resource Explorer are packaged as such

    When diffing both installations, they are exact duplicates of each other (save for a small "metadata" file for the version installed from the Resource Explorer, where the version and a small description are stated).

    The .metadata contents is what determines it as a product that can be recognized by Resource Explorer.

    Moreover, the uninstalled compiler is still listed under the "Compilers" configuration page of CCS preferences and I can select it for projects,

    Try pressing the Refresh button in the compiler configuration page. This should have CCS rescan the discovery paths and update the list.

    What is the "correct" (cannonical) way to install new compilers?

    There isn't a "correct" way to install new compilers. As long as CCS knows where to look for it, that is all that matters. The advantage of the C:\ti directory is that every CCS installation will automatically look inside C:\ti for any packages (including compilers). Where as inside the compilers folder inside a CCS installation directory would mean only that installation of CCS would find it by default. The other difference is if CCS identifies the compiler installation as a product.

    How can I uninstall older compilers installed from the "Help->Install..." menu?

    It is fine to physically delete the folder for that compiler and then refresh the compiler list in the CCS preferences.

    How can I tell the Resource Explorer of packages I have installed manually?

    If the package has been discovered by the IDE, then Resource Explorer will (should) know about it. Note that Resource Explorer will only care about tirex supported packages (.metadata and supported versions).

    What is the supposed use (if any) of having the compiler appear as "product", and export (currently void) environment variables? Should I stick to GC_TOOL*** variables?

    A lot of SDK packages on Resource Explorer have dependencies on specific compiler and xdctool versions. In the past, you had to look at the readme and make sure you install those versions separately. To make things easier on the user, Resource Explorer now allows packages to specify dependencies on other tools (compiler, xdctools, etc) and have it download them automatically when downloading the SDK. For this to work, those other tools must also be packaged as a product and uploaded on the Resource Explorer server. 

    Is this just a "transition era" to a new workflow from variables and tools installations?

    This is a good observation. This whole dependency thing on Resource Explorer is relatively new and it should become more prevalent over time.

    By the way, is it possible to install newer (than 9.2.1) versions of the Linaro toolchain? Or are they specially packaged and released by TI so they export thoose GC_TOOL_ variables and are correctly discovered by CCS?

    The CCS IDE must support the Linaro toolchain version for the integration with the CCS IDE to work. You cannot just drop any version of Linaro and expect CCS to recognize it as a valid version.

    Please let me know if I missed anything in my reply

    Thanks

    ki

  • By the way, is it possible to install newer (than 9.2.1) versions of the Linaro toolchain? Or are they specially packaged and released by TI so they export thoose GC_TOOL_ variables and are correctly discovered by CCS?

    I have installed later versions of the GCC ARM compiler than available from TI. E.g. the following shows GNU v9.3.1 and GNU v9.3.1p1 detected by CCS 10.3.0:

    And available for selection in a CCS project:

    And the CG_TOOL_ variables are populated in a project using v9.3.1p1:

    Where:

    1. The pre-built GNU v9.3.1 was downloaded from https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
    2. GNU v9.3.1p1 was built from the v9.3.1 source, with the addition of a patch to add Cortex-R big endian multilib support.

    I.e. can't any special packaging support to make the compilers detectable by CCS or to set the GC_TOOL_ variables.

  • Thank you Ki,

    Your remarks have been very insightful. I see that uninstalling or updating from the "Installation Details" window of the "Help -> About Code Composer Studio" menu item only removes or updates the compiler from the installed software list, but the compilers actually remain on the filesystem and ready to be used within CCS too, so I have to manually delete them if I want.

    Given this, I think that I will stick to installing compilers / sysconfig/ xdctools from the Resource Explorer, as it looks to me like a cleaner way to manage toolchains.

    Maybe all your explanations should be included in the documentation of CCS (Compiler Installation and Selection), as right now I see no information about using Resource Explorer for this and pros vs cons.

    Thank you for your support.

  • Thank you for sharing your experience.

    Yes, dropping the full installation of the latest GCC 10 from ARM also works. Looks like CCS looks for certain structure of the toolchain folder, and the decides if it's a GCC compiler or not. They are not shown under the "products" view of the preferences windows though, as there's no .metadata folder with the product version, as Ki explained. However, manually placing metadata with version information (maybe stolen and updated from the  GCC 9 "package"), makes it appear under the "products" view. So it looks like packages also are "discovered" just looking for some "special" folder structure an then CCS decides to "show" variables like "COM_TI_ARM_GNU_INSTALL_DIR" and "packages" really don't export or configure anything by themselves.