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.

JPEG codec encoding demo application on DM355

                                 Dear sirs,

Please help me with the following problem. I work with DM355 processor and DVSDK 3.10 software. I try to make an executable file of DM355 JPEG codec encoding demo, using source code and make-file provided in dm355_codecs_3_10 folder. But when Iaunch the make command, I recieve a long queue of messages finished by the following:

/opt/arm-2009q1/bin/arm-none-linux-gnueabi-ar: creating jpgenc-r.a
/opt/arm-2009q1/bin/arm-none-linux-gnueabi-gcc -o jpgenc-r jpgenc-r.a jpegencTestApp/linker.cmd --sysroot /home/mikhail/dvsdk/linuxlibs-2009.11-armv5te/ -lpthread  -lncurses -lstdc++ ../../../Lib/libjpgenc.a ../../../Lib/libimx.a /home/mikhail/dvsdk/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/memutils/lib/release/memutils.a470MV /home/mikhail/dvsdk/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/vicpsync/lib/release/vicpsync.a470MV jpgenc-r.a
/home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/package/cfg/jpegencTestApp_xv5T.ov5T:(.data.rel+0x60): undefined reference to `Sem_create'
/home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/package/cfg/jpegencTestApp_xv5T.ov5T:(.data.rel+0x64): undefined reference to `Sem_delete'
/home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/package/cfg/jpegencTestApp_xv5T.ov5T:(.data.rel+0x68): undefined reference to `Sem_pend'
/home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/package/cfg/jpegencTestApp_xv5T.ov5T:(.data.rel+0x6c): undefined reference to `Sem_post'
collect2: ld returned 1 exit status

I've tried to ask google, but all the sollutions I've found were not helpful.

What am I doing wrong?

Thank you in advance

  • Mikhail Smagin said:
    /home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/package/cfg/jpegencTestApp_xv5T.ov5T:(.data.rel+0x60): undefined reference to `Sem_create'
    /home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/package/cfg/jpegencTestApp_xv5T.ov5T:(.data.rel+0x64): undefined reference to `Sem_delete'
    /home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/package/cfg/jpegencTestApp_xv5T.ov5T:(.data.rel+0x68): undefined reference to `Sem_pend'
    /home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/package/cfg/jpegencTestApp_xv5T.ov5T:(.data.rel+0x6c): undefined reference to `Sem_post'
    collect2: ld returned 1 exit status

    You must linked application with library or object-file containing Sem_create function.

  • Kirill said:
    You must linked application with library or object-file containing Sem_create function.

    I am sorry, but as you can see, I've added the -lpthread option to gcc command line. I've found the original location of libpthread and ensured, that it is actually being used. But it does not help. What file else should I link?

  • Mikhail, how linked pthread and Sem_* functions? I think Sem_* functions is a wrapper for another standart functions.
    I thnk your can easy find it, e.g. grep Sem_* -rnI /path/to/sources

  • These functions are defined in jpegencTestApp.cfg file in a following way:

    var RMAN = xdc.useModule('ti.sdo.fc.rman.RMAN');
    RMAN.useDSKT2 = false;
    RMAN.persistentAllocFxn = "__ALG_allocMemory" ;
    RMAN.persistentFreeFxn = "__ALG_freeMemory" ;

    RMAN.tableSize = 10;
    RMAN.semCreateFxn = "Sem_create";
    RMAN.semDeleteFxn = "Sem_delete";
    RMAN.semPendFxn = "Sem_pend";
    RMAN.semPostFxn = "Sem_post";

    But what is RMAN? Why the makefile generates the jpgenc-r.a file successfully?

  • This is a standart TI components from SDK, I think you solve problem if you build/rebuild SDK.

  • I've done it several times. It does not solve the problem.

  • DVSDK 2.10.01.18:
    $ cd <dvsdk_dir>/framework_components_2_25_00_04/packages/ti/sdo/fc/rman
    $ ls lib/
    debug  debug_trace  release  trace
    $ ls lib/release/rman.a470MV  rman.a470uC  rman.a64P  rman.a674  rman.a86U  rman.a9t  rman.av4TCE  rman.av5T

    DVSDK 4.02.00.06:
    $ cd <dvsdk_dir>/framework-components_2_26_00_01/packages/ti/sdo/fc/rman
    $ ls lib/
    debug  debug_trace  release  trace
    $ ls lib/release/
    rman.a470MV  rman.a470uC  rman.a64P  rman.a674  rman.a86U  rman.a9t  rman.av4TCE  rman.av5T

  • Well, I have the same set of files and folders.  But I work with DVSDK 3.10.

  • Recheck path to RMAN-library in Makefile.

  • Among the long row of messages during the make process, I've found the following. Maybe they can show the root of the problem:

    /sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/package/cfg/jpegencTestApp_xv5T.h" -c -Wall -DDM355 -DLINUX -UENABLE_IDMA3 -Dfar="" -U_DBG_MSG -DENABLE_RMAN -DFORMAT_420_SEMI   -o release/alg_create.o alg_create.c
    /opt/arm-2009q1/bin/arm-none-linux-gnueabi-gcc -I ../Inc -I ../../../Inc -I ../../../../include -I /home/mikhail/dvsdk/dvsdk_3_10_00_19/../git/include -I /home/mikhail/dvsdk/dvsdk_3_10_00_19/xdais_6_25_02_11/packages/ti/xdais/include -I ./ -Wall -DDM355 -DLINUX -UENABLE_IDMA3 -Dfar="" -U_DBG_MSG -DENABLE_RMAN -DFORMAT_420_SEMI -march=armv5t -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/linuxutils_2_26_03_06/packages" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/xdais_6_25_02_11/packages" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/framework_components_2_25_02_06/examples" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/edma3_lld_01_11_00_03/packages" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/ires/addrspace" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/xdctools_3_16_01_27/packages" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/.."  -Dxdc_target_types__="gnu/targets/arm/std.h" -Dxdc_target_name__=GCArmv5T -Dxdc_cfg__header__="/home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/package/cfg/jpegencTestApp_xv5T.h" -c -Wall -DDM355 -DLINUX -UENABLE_IDMA3 -Dfar="" -U_DBG_MSG -DENABLE_RMAN -DFORMAT_420_SEMI   -o release/alg_malloc.o alg_malloc.c
    /opt/arm-2009q1/bin/arm-none-linux-gnueabi-gcc -I ../Inc -I ../../../Inc -I ../../../../include -I /home/mikhail/dvsdk/dvsdk_3_10_00_19/../git/include -I /home/mikhail/dvsdk/dvsdk_3_10_00_19/xdais_6_25_02_11/packages/ti/xdais/include -I ./ -Wall -DDM355 -DLINUX -UENABLE_IDMA3 -Dfar="" -U_DBG_MSG -DENABLE_RMAN -DFORMAT_420_SEMI -march=armv5t -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/linuxutils_2_26_03_06/packages" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/xdais_6_25_02_11/packages" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/framework_components_2_25_02_06/examples" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/edma3_lld_01_11_00_03/packages" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/framework_components_2_25_02_06/packages/ti/sdo/fc/ires/addrspace" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/xdctools_3_16_01_27/packages" -I"/home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/.."  -Dxdc_target_types__="gnu/targets/arm/std.h" -Dxdc_target_name__=GCArmv5T -Dxdc_cfg__header__="/home/mikhail/dvsdk/dvsdk_3_10_00_19/dm355_codecs_03_10_00_02/packages/ti/sdo/codecs/jpegenc/apps/Client/Test/Src/jpegencTestApp/package/cfg/jpegencTestApp_xv5T.h" -c -Wall -DDM355 -DLINUX -UENABLE_IDMA3 -Dfar="" -U_DBG_MSG -DENABLE_RMAN -DFORMAT_420_SEMI   -o release/jpgeTestApp.o jpgeTestApp.c
    jpgeTestApp.c:7:1: warning: "ENABLE_RMAN" redefined
    <command-line>: warning: this is the location of the previous definition
    jpgeTestApp.c:8:1: warning: "FORMAT_420_SEMI" redefined
    <command-line>: warning: this is the location of the previous definition
    In file included from jpgeTestApp.c:25:
    ../Inc/testapp_arm926intc.h:45: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:49: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:53: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:57: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:61: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:65: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:69: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:73: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:77: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:81: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:85: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:89: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:93: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:98: warning: ignoring #pragma SWI_ALIAS
    ../Inc/testapp_arm926intc.h:102: warning: ignoring #pragma SWI_ALIAS
    jpgeTestApp.c: In function 'main':
    jpgeTestApp.c:373: warning: format '%d' expects type 'int *', but argument 3 has type 'XDAS_Int8 *'
    jpgeTestApp.c:491: warning: implicit declaration of function 'ALG_create'
    jpgeTestApp.c:723: warning: pointer targets in passing argument 1 of 'Convert420Pto420Semi' differ in signedness
    jpgeTestApp.c:723: warning: pointer targets in passing argument 2 of 'Convert420Pto420Semi' differ in signedness
    jpgeTestApp.c:800: warning: pointer targets in passing argument 1 of 'Convert420Pto420Semi' differ in signedness
    jpgeTestApp.c:800: warning: pointer targets in passing argument 2 of 'Convert420Pto420Semi' differ in signedness
    jpgeTestApp.c:1172: warning: implicit declaration of function 'ALG_delete'
    jpgeTestApp.c:204: warning: unused variable 'lTemp1'
    jpgeTestApp.c:196: warning: unused variable 'num_markers'
    jpgeTestApp.c:192: warning: unused variable 'k'
    jpgeTestApp.c:192: warning: unused variable 'queue_num'
    jpgeTestApp.c:192: warning: unused variable 'queue_word'
    jpgeTestApp.c:192: warning: unused variable 'val'
    jpgeTestApp.c:188: warning: unused variable 'RefBuffPtr'
    jpgeTestApp.c:186: warning: unused variable 'mbY'
    jpgeTestApp.c:186: warning: unused variable 'mbSizeY'
    jpgeTestApp.c:186: warning: unused variable 'mbSizeX'
    jpgeTestApp.c:184: warning: unused variable 'repeat'
    jpgeTestApp.c:184: warning: unused variable 'totalAU'
    jpgeTestApp.c:184: warning: unused variable 'numAU'
    jpgeTestApp.c:176: warning: unused variable 'colorf'
    jpgeTestApp.c: In function 'Convert420Pto420Semi':
    jpgeTestApp.c:1269: warning: unused variable 'j'