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/TMS320C6748: Where are my CCS system path variables pointing to?

Part Number: TMS320C6748

Tool/software: Code Composer Studio

Hi

I want to be certain my project is using the correct versions of libraries, drivers etc. and not linking in some out-dated version which is perhaps outside my backup scheme.

In build settings > linker path for example, there are a number of variables such as STWARE_INSTALL which can be listed by clicking the Variables button in the Add Directory Path dialog, and their value is shown here. You can also see the value by mousing over the little button with 3 dots on it. In this case it points to StarterWare_1_20_04_01. That's great! I know exactly what's going on here!

However there are other variables that aren't listed here, such as COM_TI_RTSC_TIRTOSC6000_LIBRARY_PATH, (and BIOSPSP_LIBRARY_PATH, and others) and the mouse-over trick reveals no location for them. It just says "Contributed by product TIRTOS for C6000  <none>". Neither can they be found in Window>Preferences>Code Composer Studio>Build>Variables (even when Show System Variables is checked). So how do I find out where these variables point to? It would be really useful to know which RTOS my project is linking.

Also, same question for variables that have the value <ECLIPSE DYNAMIC VARIABLE>, please.

Thank you

Roy

  • Roy,

    Roy Jackson said:
    my project is using the correct versions of libraries, drivers etc. and not linking in some out-dated version

    It seems that you have conflicts between "correct versions of libraries" and your source files.
    What does it mean: correct versions of libraries? The most actual?

    You need to update your sources or move to libraries used by an original project. 

    Please make Clean and Rebuild your project and then post Console log.

    If you cannot build your project because some include files of objects are not found,
    the following screen shots would be helpful Project Properties ->
    -> Resources -> Linked Resources -> Path Variables tab (resize the window to show full Names and Paths
    -> General -> Product tab
    -> Build -> Dependencies tab
    -> Build -> C6000 Compiler -> Include Options
    -> Build -> C6000 Linker -> File Search Path.

    I did some tests using new and empty workspaces with both CCS830 and 810.After changing from Debug to Release all builds went without issues, even without Clean. I could not recreate the issues.
    Something transient could happen, may be related to workspace history, I do not know. 

  • Console1.txtHi

    Sorry if my opening sentence is mis-leading. I don't have any conflicts (as far as I know), and let's not worry about which version is 'correct'. I simply want to know which drivers etc are being linked so that I fully understand the build process.

    I'm posting the console output as you asked, (sorry it's rather large) but I've already looked through this and am not able to figure out the paths to the TIRTOS, nor drivers.lib, so if you are able to do that I would be very keen to learn how to.  There are literally dozens of drivers.lib files on my computer and it would be good to tidy up and remove the ones that are not in use.

    I also looked at the path variables tab you mention above but the COM_TI_RTSC_TIRTOSC6000_LIBRARY_PATH is not there either.

    Thanks

    Roy

  • I see no error.
    Build done.
  • Roy,

    Roy Jackson said:
    However there are other variables that aren't listed here, such as COM_TI_RTSC_TIRTOSC6000_LIBRARY_PATH, (and BIOSPSP_LIBRARY_PATH, and others) and the mouse-over trick reveals no location for them. It just says "Contributed by product TIRTOS for C6000  <none>". Neither can they be found in Window>Preferences>Code Composer Studio>Build>Variables (even when Show System Variables is checked).

    You should be able to find these under Project Properties->Build->Variables tab, after checking the "Show system variables" box. Let us know if that does not give you what you are looking for.

  • Tom,

    I'm afraid you are missing the point. I am not asking for help to fix a compile or link error. I am asking how to find out the value of system path variables that are not listed in the variables tab.

    AartiG,

    Thanks, but these variables don't appear in the variables tab, which is what was puzzling me.

    I think the solution may be that these variables are undefined (or null or empty) and can be removed from the library search path. I have removed one as an experiment and the project still builds ok. They were placed there by the new project creation process, and so I decided not to interfere with them because I assumed they were there for a good reason. I will continue to experiment with removing them until something goes wrong!

    Roy

  • Roy,
    2-3 calls, 4-5 emails and I missed the point.
    Step by step and you will clean it up.
  • OK, guys. I have removed all the unexplained variables and the project still builds and runs. It would seem that they were superfluous and not pointing to any path at all.

    As for the other half of my question, files such as drivers.lib are presumably found by following the library search path in the same way the linker must do. I can attempt to do this manually. It would be nice if there were some option to make the linker explicitly state the full name of the file it is using, then there would be no chance of me making a mistake. After some searching around I found:
    linker option: -- verbose-diagnostics (This didn't help)
    linker option: --issue_remarks
    This didn't help either, but gave me a surprise by emitting the remark :
    remark #10205-D: automatic RTS selection: linking in "rts6740_elf.lib" in place of index library "libc.a"
    so it turns out libc.a isn't used at all! rts6740_elf.lib is further down my list of library files anyway, so it doesn't really matter except I apparently don't need libc.a in the list.

    So is there a way to find out for certain what libraries are currently being selected by the linker? Some of the ones I have added are given their full path name and so there is surely no doubt about those. But what about platform.lib, drivers.lib, system_config.lib, usblib.lib ?

    Cheers
    Roy
  • Roy Jackson said:
    This didn't help either, but gave me a surprise by emitting the remark :
    remark #10205-D: automatic RTS selection: linking in "rts6740_elf.lib" in place of index library "libc.a"
    so it turns out libc.a isn't used at all!

    The linker uses the index library libc.a to automatically pick an appropriate library if an explicit library name is not specified. Please see section 9.4.2.1 of the C6000 Compiler Users Guide for more information.

    Roy Jackson said:
    So is there a way to find out for certain what libraries are currently being selected by the linker? Some of the ones I have added are given their full path name and so there is surely no doubt about those. But what about platform.lib, drivers.lib, system_config.lib, usblib.lib ?

    In the case of RTSC libraries that come from packages like TI-RTOS, XDCtools, SYS/BIOS etc that are discovered/installed to CCS, the version/directory that is picked up will be determined by the version of the package enabled in the project (Project Properties->Product tab). 

    For libraries coming from packages that are not discovered by CCS, there are a couple of ways to check/address this:
    - look at the  -i (--search_path) options passed to the linker in the build output 
    - change your linker settings to add the full path to the library in the -l (--library) option itself - the build console will then display that in the build output
    - the link map file (.map) will list the full path to libraries under a "Module Summary" section

    Hope this helps!

  • Yes! The linker .map file has the full paths of all libraries, in the Module Summary section, as you say - this is exactly what I needed.

    Thanks AartiG. (I had looked in here before, but there's so much other information, I failed to spot it)

    Thanks again

    Roy