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/TMS320F280049C: Need Help with Unresolved Symbols Error After Inserting .syscfg File for CLB into Existing Project

Part Number: TMS320F280049C
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

Tool/software: Code Composer Studio

I followed the instructions to insert a syscfg file into an existing project as described in Section 6 of the SPRUIR8A User's Guide and in this link:

https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/910829

First, I inserted a syscfg file into one of the CMPSS example files (cmpss_ex1_asynch) to make sure that the process worked. I was able to add a CLB with a simple state machine to the code with no issues at all upon building the project in CPU1_FLASH. We will call this the working example.

I then took an existing code that we are running on our eval board, which has compiled without any issue thus far, and followed the same procedure to add a syscfg file to that project. I made sure all of the Path Variables in the Linked Resources matched the working example, and I hit build.  I ended up getting this error: 

I am not sure why this would be happening, since I have all of the same libraries linked to this project as the working example, so I am not sure where to start looking.  Can anyone tell me what I should be looking for?

  • Hello Anthony,

    The function CLB_configCounterLoadMatch is part of driverlib.  If you check the properties of the project (right click on the project --> properties) under C2000 Linker, File Search Path, do you see driverlib.lib under "Include library"? Also check under --search_path for an appropriate directory.  driverlib is under C2000Ware 

    • For example: Stand alone C2000Ware: C:\ti\c2000\C2000Ware_<version>\driverlib\f28004x\driverlib\ccs\Debug   
    • or in the SDK under <install>/c2000ware/driverlib/f28004/driverlib/ccs/Debug/

    Edit to mention: XBAR_setCLBMuxConfig is also part of driverlib.

    Best regards

    Lori

  • I do not see driverlib.lib in that section. I tried to add it, and got a bunch of similar but different errors: Here is what I saw when I went there:

    When I attempted to add driverlib.lib using the file location you provided, I got this error:

    EDIT: I should point out that the settings I saw in the first image are the same as my working example, so I am not sure why that would work but the project does not

  • Anthony,

    It looks like there is now two driverlib libraries included (1) one appears to be within in the directory of your project (../driverlib.lib) and (2) the one I just asked you to add (C:\ti.....). 

    For the (1) it may be an old version of driverlib.  (2) is definitely not the latest version of driverlib since it is in C2000Ware 2.01.  

    Can you try removing (1) from the project directory.  Install the latest C2000Ware and point (2) to that location.

    Anthony Puzzo said:
    EDIT: I should point out that the settings I saw in the first image are the same as my working example, so I am not sure why that would work but the project does not

    The errors will not occur unless these functions are used in the project.  I suspect the working example does not call these functions.

    Regards

    Lori

  • Note: I also suggest changing the SysConfig to point to the latest C2000Ware (V3.03.00.00).  in order to get latest features supported on this device.

  • So the CLB TILEs (and the code that sets them up) are almost exactly the same in the working example and the project I am working on. This is why I am confused.

    I used the same FSM's, counters, HLC's, etc configured in the exact same way for both. The only difference is the inputs I am using to the TILEs (for example, I am using CMPSS1, 3, 3, and 4 in the real project, and CMPSS 2, 4, and 6 in the working file as the inputs to the tiles through the XBAR).

    One major thing I also noticed between the working example and the real project is that the html file for the CLB was not generated in the project but was generated in the working example... could this be a clue?

  • Anthony Puzzo said:
    One major thing I also noticed between the working example and the real project is that the html file for the CLB was not generated in the project but was generated in the working example... could this be a clue?

    I experimented by adding an error into a working example.  The .html was not generated in this case as well.   

    Anthony Puzzo said:

    So the CLB TILEs (and the code that sets them up) are almost exactly the same in the working example and the project I am working on. This is why I am confused.

    I used the same FSM's, counters, HLC's, etc configured in the exact same way for both. The only difference is the inputs I am using to the TILEs (for example, I am using CMPSS1, 3, 3, and 4 in the real project, and CMPSS 2, 4, and 6 in the working file as the inputs to the tiles through the XBAR).

    My suggestion is still to make sure the latest driverlib, and sysconfig, is being used.  Have you tried my previous suggestion?   

    If you want to dig, for your understanding:

    • For the driverlib, in the working directory, you could extract the symbols to see if these functions with unresolved symbols are present, but I would still suggest using the latest driverlib.  To extract a list of the symbols use the archiver which is described in http://www.ti.com/lit/spru513
    • In the working example, you can search the project to see if those functions are being used. 

     Regards

    Lori

  • I have downloaded the latest C2000Ware 3.03.00, but I am not sure what to do next. It looks like there are several things I would need to change in the properties, but I am not 100% sure what those things are. 

  • I tried changing it in this tab of the GUI, but it keeps reverting back to version 2 for some reason:

  • Hi Anthony,

    If CCS hasn't been restarted after the new install of C2000Ware it probably hasn't discovered it yet as a product.

    I did a search and found this thread which explains how to correct this:

    https://e2e.ti.com/support/tools/ccs/f/81/t/646199?CCS-Unable-to-modify-Path-Variable-for-SimpleLink-Install-Directory-in-CCS-v7-3

    Best Regards

    Lori

  • HI Lori,

    I noticed that under the project tree, the driverlib folder that is present under all of the example projects seems to be missing for mine:

    I am not sure why this is, especially since the code was working before I attempted to add the syscfg file in... but could this be the issue? If so, how do I fix it?

  • Anthony,

    There are two ways to add a library to a project.  It can be (1) linked like any other source file or it can be (2) added to the project options.  I've been walking you through option (2).  

    If you want to try the other method, which matches your screenshot of the example, then here is some information on how to do so:

    https://e2e.ti.com/support/tools/ccs/f/81/t/612994?CCS-Adding-external-library

    http://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_project-management.html#adding-or-linking-source-files-to-project

    Either method will work to have the .lib be included in the build of the project.

    Regards

    Lori  

  • Hi Lori,

    I think I found the issue. Whoever the original author of the code I am working on was, they must have built it with a much older version of the software.

    All of the links you told me to look at checked out, and yet I was still getting the error. I ended up doing a deeper dive into the driverlib folder and the device.c and driverlib.h files under the device folder, shown here:

    I compared the files in my project to those of the example project that works, and found that there are no clb.h or clb.h files in my project, and there is no mention of the CLB in the xbar.h, cbar.c, files. I opened the example project versions of these codes, and right away I noticed a difference: the example project was using the support library version 1.08.00.00, while my project was using version 1.05.00.00. 

    I ended up copying the entire driverlib folder as well as device.c and driverlib.h (not device.c, since that one had no mention of the CLB) from the example project to my project, and I was finally able to build the project with 0 errors. This appears to have resolved my issue. 

    Thanks,

    Anthony