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.

IQMath Library not linking with CCS for DM6437

Hi,

What should be a very simply exercise in adding a .h file and the static library to link the IQMath library isn't working.

As you can see below, the functions aren't linking despite us adding the IQmath_ROM_c643x.lib to the project.

====================================

undefined first referenced

symbol in file

--------- ----------------

__FtoIQN ./src/processing /fixedpoint.obj

__IQNdiv ./src/ processing /fixedpoint.obj

__IQNrsmpy ./src/ processing /fixedpoint.obj

__IQNsqrt ./src/ processing /fixedpoint.obj

==========================================

I have a few questions

1) The lib file IQmath_ROM_c643x.lib  is only 1kB. Usually this means that the file is empty but since it's pointing to functions already in ROM (as specified by SPRUGG9), it might be ok for it to be small

2) All other files that the linker is using are obj and one .a file. Is the lib file not useful for our target plaform? Usually .lib and .a files don't mix.

3) We have tried modifying our linker map file by adding the lines:

.data:IQmathTables : > L2_IRAM

.text:IQmath : > L2_IRAM

It seems that the file isn't found at all. Perhaps due to its format it's being ignored.

Is there anything specific that I should be doing to link? Am I using the right library?


Regards,
Gustavo

  • Please refer to 2.3. It mentions for all little endian devices you need to link in 2 libraries iqmath_c64x+.lib and the library that specifies the location of IQMATH tables. In case of DM6437 this is the IQmath_ROM_c643x library. Also ensure that the IQMath header is included.

    Have you linked both the libraries? Please look at the examples in the package to see how IQmath library needs to be linked.

    Regards,

    Rahul

  • Thank you. I solved it when I reread that paragraph. It was not obvious since ususally only library file is needed to link the functions (as in the case of the big endian lib).

    Regards,
    Gustavo