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.

TDA2SX: Link VLIB in visionSDK

Part Number: TDA2SX
Other Parts Discussed in Thread: TDA2

Hi,

Where  can I include VLib Libraries (common.lib, vlib.lib, vlib_cn.lib) to build on visionSDK2.10?
I would like to to know which setting file to set these libraries.
If I use VLib functions on frameCopyAlgoLocalDma.c, the build has link errors as follows:


# Linking into C:/VisionSDK/VISION_SDK_02_10_00_00/vision_sdk/binaries/vision_sd
k/bin/tda2xx-evm/vision_sdk_c66xdsp_1_release.xe66...
warning: creating output section ".sram_start" without a SECTIONS
specification

undefined first referenced

symbol in file

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

_sram_start C:\VisionSDK\VISION_SDK_02_10_00_00\ti_components\algorithms_codecs
\vlib_c66x_3_3_0_3\packages\ti\vlib\lib\common.ae66<VLIB_memory.oe66>

error: unresolved symbols remain
error: errors encountered during linking;
"C:/VisionSDK/VISION_SDK_02_10_00_00/vision_sdk/binaries/vision_sdk/bin/tda2
xx-evm/vision_sdk_c66xdsp_1_release.xe66" not built
gmake[6]: *** [C:/VisionSDK/VISION_SDK_02_10_00_00/vision_sdk/binaries/vision_sd
k/bin/tda2xx-evm/vision_sdk_c66xdsp_1_release.xe66] Error 1
gmake[5]: *** [c66xdsp_1] Error 2
gmake[4]: *** [apps_dsp1] Error 2
gmake[3]: *** [apps] Error 2
gmake[2]: *** [apps] Error 2
gmake[1]: *** [vision_sdk_apps] Error 2
gmake: *** [vision_sdk] Error 2

Thanks,
Kenshow

  • Hi, Kenshow,

    Your question has been forwarded to VSDK experts with a copy to VLIB expert. They will commnet directly here.

    Regards,
    Mariya
  • Hi

    you can list these libs in either

    \vision_sdk\build\makerules\rules_66.mk  (if its some kernel libs)

    or

    \vision_sdk\examples\MAKEFILE.MK (if they are application specific libs)

    regards, Shiju

  • Hi Shiju,

    The default file of makerules_66.mk has already set the lib path. Also, should I add the path in \vision_sdk\examples\MAKEFILE.MK ?

    [vision_sdk\build\makerules\rules_66.mk]
    (Line-223): LIB_PATHS += $(vlib_PATH)/packages/ti/vlib/lib/vlib.ae66
    (Line-224): LIB_PATHS += $(vlib_PATH)/packages/ti/vlib/lib/vlib_cn.ae66
    (Line-225): LIB_PATHS += $(vlib_PATH)/packages/ti/vlib/lib/common.lib

    In this case, I just added vlib function into a file,
    C:\VISION_SDK_02_10_00_00\vision_sdk\examples\tda2xx\src\alg_plugins\framecopy\frameCopyAlgoLocalDma.c

    Should I set the lib path any more? and which file?

    Regards, Kenshow
  • Kenshow

    no, you do not need to add this in any other files.

    One more thing is, include the VLIB header file that defines these functions in  framecopy\frameCopyAlgoLocalDma.c

    regards, Shiju

  • Hi Shiji,

    I had already defined the header. And, it seems link error.

    my AlgoLocalDma.c file is follows:

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

                      :

                      :

    #include <ti/vlib/src/common/VLIB_test.h>

    #include <ti/vlib/src/common/VLIB_memory.h>

    #include <ti/vlib/src/common/VLIB_profile.h>

    Int32 Alg_FrameCopyProcess(Alg_FrameCopy_Obj *algHandle,

                              UInt32            *inPtr[],

                              UInt32            *outPtr[],

                              UInt32             width,

                              UInt32             height,

                              UInt32             inPitch[],

                              UInt32             outPitch[],

                              UInt32             dataFormat,

                              Uint32             copyMode

                             )

    {

       Int32 rowIdx;

       Int32 colIdx;

       UInt32 *inputPtr;

       UInt32 *outputPtr;

       UInt32 numPlanes;

       UInt32 wordWidth;

       UInt32 lineSizeInBytes;

       UInt32 opt;

       uint16_t tccStatus;

       Alg_FrameCopyDma_Obj * pAlgHandle;

       pAlgHandle = (Alg_FrameCopyDma_Obj *)algHandle;

    // TEST VLIB LINK

    VLIB_cache_init();

             :

             :

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

    Regards,

    Kenshow

  • The common.lib is intended to test VLIB in stand-alone, bare metal DSP environment. When you integrate VLIB into an application in VSDK, you don't need common.lib or the functions associated with them. For example, VLIB_cache_init() shouldn't be used if the VSDK has already initialized the cache, and VLIB_malloc() should not be used as this is just the testbench way of allocating memory. In your example above, you probably don't need VLIB_cache_init() or the 3 common header files you included. Is there some reason you feel that you need these?