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.

DSPLib for complex multiplication

Hi everyone,

I am trying to use the function DSP_mat_mul_cplx from the DSPLib but I found some problems in the way. I am using CC6657. I get the following error 

'Invoking: C6000 Linker'
"C:/ti/ccsv5/tools/compiler/c6000_7.4.6/bin/cl6x" -mv6600 --abi=eabi -g --display_error_number --diag_warning=225 -z -m"DSPLibrary_test.map" -i"C:/ti/ccsv5/tools/compiler/c6000_7.4.6/lib" -i"C:/ti/ccsv5/tools/compiler/c6000_7.4.6/include" --reread_libs --warn_sections --rom_model -o "DSPLibrary_test.out" -l"./configPkg/linker.cmd" "./edma_isr.obj" -l"libc.a"
<Linking>

undefined first referenced
symbol in file
--------- ----------------
DSP_mat_mul_cplx ./edma_isr.obj

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "DSPLibrary_test.out" not
built

>> Compilation failure

I am including the library in the compilation of the file (#include <ti/dsplib/dsplib.h>). If I look at the prototype in the header file DSP_mat_mul_cplx.h of this function I see that:

#if defined(_TMS320C6600)
#include <ti/dsplib/src/DSP_mat_mul_cplx/c66/DSP_mat_mul_cplx.h>
#elif defined (_TMS320C6400_PLUS)
#include <ti/dsplib/src/DSP_mat_mul_cplx/c64P/DSP_mat_mul_cplx.h>
#else
#error invalid target
#endif

So it seems that, unless defined(_TMS320C6600) is true I cannot use this function. How can I make true this variable? Any idea?

Thanks

  • Hi,

    _TMS320C6600 is defined by the compiler if target is C6600

    The target is selected by a compiler option which is -mv6600

    Kind regards,

    one and zero

  • Hi,

    Thanks for the quick answer. i checked the Compiler options and it is included in the compiling options command.

    Why it is not finding the libraries? I am using the dsplib_c66x_3_2_0_1

    Regardsm

  • Do you have the library search path specified?

    These libraries and the paths to these libraries are properly added in CCS in the following location under Project->Properties->CCS Build-> Linker->File Search Path

    Kind regards,

    one and zero

  • Hi,

    These are the linker command switches 

    -mv6600 -g --display_error_number --diag_warning=225 --abi=eabi -z -m"Preprocessing_SYS_BIOS.map" --warn_sections -i"C:/ti/ccsv5/tools/compiler/c6000/lib" -i"C:/ti/ccsv5/tools/compiler/c6000/include" --reread_libs --rom_model

    I cannot add the search path for this library in the File Search Path section

    Regards

  • Yes you can:

    in CCS, please see:

    http://processors.wiki.ti.com/index.php/Include_paths_and_options

    or command line:

    --library= library

    Identifies the appropriate archive library containing C/C++ run-timesupport
    and floating-point math functions. The --library option's short form is -l

    For more please see SPRU187 (Compiler User's Guide).

    Kind regards,

    one and zero

  • Thanks for the answer.

    I tried to follow your advice but I think I missing something. The result of adding the path for the dsplib is the same as before. This is how it looks like the libraries I am using. Do I miss soemthing else?

    Thanks

  • .. you need to add the library itself as well in the upper part of the window. The name of the lib is:

    dsplib.a66

    Kind regards,

    one and zero

  • Thanks. I solved the problem

  • Hi Everyone

    i am working on CCS  C++  project that runs on EVM6657 platform . in the project , the main c++ file  (PD_main.cpp) contains  a 337x 20 2D complex vector declaration to be processed by functions from external signal processing library.  

    when i try to build the project i end up with the following error message indicating the declaration goes beyond limited memory .the code and the data are loaded in their default setting and i wonder how i can use the external DDR3 memory 

    ../PD_main.cpp, line 19: INTERNAL ERROR: Number of virtual registers beyond

    limit. Reduce function size

    This may be a serious problem. Please contact customer support with a
    description of this problem and a sample of the source files that caused this
    INTERNAL ERROR message to appear.

    Cannot continue compilation - ABORTING!


    >> Compilation failure
    gmake: *** [PD_main.obj] Error 1
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

    i would like to know how i can extend the memory limit by adopting the external memory .

    i attached the main cpp source file.

    PD_main.cpp