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.

F035 linking problems

I'm using CCS 4.2.5.00005 and tools 4.9.2.

When I add pf035a_api_eabi_vfp.lib or pf035a_api_eabi.lib to my project using the -l flag (in project properties->C/C++ build->tool settings->tms470 linker->file search path), I'm still getting link errors for all of the flash functions I call, specifically: Flash_Compact_B, Flash_Erase_Sector_B, Flash_Prog_Data_B, Flash_Verify_Data_B.  I've tried referencing the libraries in the .cmd file or in other ways, and I've done an "nm" of the .lib in question to check that it actually has the symbols defined.  My project is EABI, with float support, and be32.  Without the flash code, the project runs fine; it's just resolving these link references that seems to be the hard part.

Any advice on things to double check, or ways to print out better error messages to help me debug it?  I'm at something of a dead end.  I went to a TI seminar and asked the lecturer but didn't have any luck with that.

  • Hi Tom,

    Except for pf035a_api_eabi.lib, three header files have to be included in your project: f035.h, flash470.h and Flash470ErrorDefines.h.

    Please also tell the CCS where the header files are located (Compiler --> include options).

    Regards,

    QJ. 

  • Hi QJ,

    I'm not having any problems with compiling.  I include the three header files, and the compiler can find all of the symbols.

    My problem is that when the linker is linking all of the object files and libraries together, it can't find the symbols I mentioned above.  However, those symbols are definitely in pf035a_api_eabi.lib, so the linker should be able to find them.  I'm unable to get the linker to give me a helpful error message to determine why it can't find the symbols for the flash functions.

    Thanks,

    Tom

  • Tom,

    The F035a library is not linked correctly to your project. I tried all the ways you mentioned, I could not replica your problem.

    Please try this in CMD file:

    -l "C:\ti\pf035a_api\v1.05\pf035a_api_eabi_vfp.lib"

    Make sure the library exists in this folder. 

    If any problem, I can send you my CCS5.1 project for programming F035 as reference.

    Regards,

    QJ

  • I finally figured out what was going on.  The flash libraries are linked as C libraries, and I'm using a C++ project.  The error message wasn't great and I missed this in the documentation, but the following fixes everything:

    extern "C" {

    #include "f035.h"

    #include "flash470.h"

    }