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.

Problem with IQmath library

Other Parts Discussed in Thread: TMS320C6713B

Dear e2e Community!

Can't compile the C - project with the function _IQsqrt(in1) from IQmath library. During linking CCS writes the following message:

 

<Linking>

 undefined     first referenced   symbol                          in file                                                            

                                           _IQisqrtTable D:\\kukush.v\\ProjCCS\\OctFRectifierDecimRxy\\IQmath_c64x .lib<IQNsqrt.obj>

error: unresolved symbols remain error: errors encountered during linking; "./Debug/OctFRectifierDecimRxy.out"    not built

 

Remark: OctFRectifierDecimRxy is the name of my project.

Files "IQmath.h" and "typedef.h" are already included to the project. IQmath_c64x .lib is also linked to the progect. All as described in SPRUGG9.

Note, please, that linker can't find _IQisqrtTable for _IQsqrt, not a _IQsqrt.

Same thing happens, when I want to use IQNsin (it can't find _IQsinTable...)

I work with C6747 EVM (OMAP L137 EVM). Use CCS v3.3 Build options: Target C64x  (mv6400 ), Little endian.

 

Help me please! Where can I find *.lib with the necessary tables... ?

With best regards, Vitalii

  • Deare e2e community!!!

    I have found solution!!!

    For linking IQmath library on a little-endian device you MUST link to a project TWO *.lib files: 1. IQmath_c64x+.lib; 2. IQmath_RAM_c64x+.lib.

    Attention!!! Linking only IQmath_c64x+.lib is insufficient !!!!

    Thank You very much!!! Vitalii

  • Hi

    I am using TMS320C6713b and code composer studio v5.5. Its a floating point dsp. I am not very sure whether I specifically need floating point dsp or fixed point dsp can fill my purpose. Is there anyway i can compare the results for using the two dsps? currently In order to check that I am making a project in CCSv5.5 using IQmath lib. But every where I search I find IQmath for C2000 and C64X. I wanted do know is IQmath lib available for C6713b? If yes which version? Kindly help in this regard.

    Thankyou.

    Maheen

  • Hi Maheen!

    As I understand, IQmath lib is a library for FIXED point computations. 'IQ' acronym means, that number has fixed bits for integer (I) and fractional (Q) parts of number. So IQmath.lib is aimed to fixed-point processors (for example, C64, C64+ ). As I understand C67x and C64x+ DSP's aren't code compatible. (They are code compatible with C674x, OMAPL137, L138, but this isn't your case. Please see the Introduction-Presentation in the 'Basic' chapter of C6000 Teaching ROM (http://e2e.ti.com/group/universityprogram/educators/w/wiki/2041.c6000-teaching-rom.aspx).

    So i think, that IQmath-libs are avalible only for fixed-point DSPs... But I'm not sure. I'm beginner with TI DSPs. Ask please TI Employees about such compability!

    With best regards, Vitalii

  • Thank you Vitalii for your response.

     But I compiled the same code for both C64x(fixed point) and C67x(floating-point) without adding any special libraries. And I got exactly same results. That is why I don't understand the purpose of IQmathLib.

      Thanks.

    Maheen
     

  • Maheen! It is very Interesting.

    As I understand, Result can be same/ But what can You say about a speed of calculations? For example You can use ' * ' or _IQNmpy from IQmath lib for multiplication. Results can be same but the speeds of execution will be different.

    When the compiler sees ' * ' it uses general-purpose algoritm. This general-purpose algoritm is universal for all DSPs and don't use any hardware accelerators (I mean hardware fixed or floating point multiplier etc.)

    Have You estimated the speed of computation?