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.

Redefinition of "IPC_generatedInit" in "xxxxxx_xv5t.c"

There are two "redefinition" in my xxxx_xv5t.c file during my application compiling, one is "IPC_generatedInit", another is "Global_useLinkArbit"

I grep "IPC_generatedInit" and "Global_useLinkArbit" in my codec, server and application files, I found they are just appear in my xxxxxx_x64P.c file

I cannot solve this problem

So I want to get help from TI's experts, how to solve them ?

Thank you very much

  • Those 2 symbols (and lots of others) are generated during the config step.

    To better understand the context of your question, can you share which device you're using as well as the version of Codec Engine?

    Chris

  • Thanks for your replying, Chris

    my Device is DM6467T, my version of Codec Engine is 2_25_05_16, it is dvsdk_3_10_00_19's Codec Engine

    more details as following:

    1.my codecs are compiled by dvsdk_2_00_00_22's tool chain, and its Codec Engine is codec_engine_2_23_01.In other word, the .l64P files are compiled by dvsdk_2_00_00_22's tool chain

    2.I compiled my .x64P in dvsdk_3_10_00_19(Codec Engine is 2_25_05_16)

    3.I compiled my application in dvsdk_3_10_00_19(Codec Engine is 2_25_05_16)

     

  • I've found solution to solve this problem

    The reason is that I added ipc.ipc = xdc_useModule("ti.sdo.ce.ipc.linux.Ipc") in my xxx.cfg file for my application.

    I've removed this code, and the error is disappeared

    But, another warning appear :

    ti.sdo.ce.Engine.close()- WARNING: Your application .cfg script does not specify either the osal.Global.runtimeEnv or the ipc for this engine. Will set to the default, ti.sdo.ce.ipc.dsplink.Ipc, and use default memory maps. For example, if Linux, fix this warning by adding the following to your .cfg script:
    var global = xdc.useModule('ti.sdo.ce.osal.Global');
    global.runtimeEnv = global.DSPLINK_LINUX;

    If I add  global.runtimeEnv = global.DSPLINK_LINUX, another error will be appear :

    js: "/home/Shaquille/DM6467TDev/dvsdk_3_10_00_19/codec_engine_2_25_05_16/packages/ti/sdo/ce/osal/package.xs", line 53: ti.sdo.ce.osal:  Setting both Global.runtimeEnv and Global.os is not supported.  Modify your config script to set either the .runtimeEnv (preferred) or the .os fields.
    For more info, see http://tiexpressdsp.com/index.php/CE_Config_Updates

    gmake: *** [package/cfg/CameraTest_dm6467_xv5T.c] Error 1
    Warning: directory "/packages" on package path does not exist
    js: "/home/Shaquille/DM6467TDev/dvsdk_3_10_00_19/xdctools_3_16_01_27/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
    make: *** [linux/CameraTest_dm6467_config/compiler.opt] Error 1

    How can I avoid this warning ?

    Thank you very much

  • You're getting close.  The error msg is trying to guide you - you don't want to set both Global.runtimeEnv and Global.os - you probably _just_ want the former.

    The "CE_Config_Updates" URL mentioned in the error contains some more details.  There are 2 ways to configure the "OSAL and IPC" for your environment:

    • Global.runtimeEnv is recommended - that one setting includes both the IPC and OSAL (e.g. DSPLINK_LINUX).  In your case, you want to set it to Global.DSPLINK_LINUX.
    • The _other_ way is to explicitly set the Global.os and ipcSettings.ipc fields (and _not_ Global.runtimeEnv!).  Some customers need the flexibility of this latter option, but you probably don't.

    In short, remove anywhere your script is setting Global.os.

    If that doesn't help, please attach your .cfg script and we can work through it.

    Chris

  • Thanks for your reply,Chris

    I've understand your suggestion.

    I've compiled my .x64P and application correctly. And run my appliction on my device, but I found another problem : Engine_open is error!

    my steps as following :

    1.execute "loadmodules.sh" on my device

    2.execute my application, and It throw an error, then I execute "CE_DEBUG=1", and the error info as following:

    CE_DEBUG=1 ./CameraTest
    @0,062,449us: [+6 T:0x4001ed50] CE - Engine_init> CE debugging on (CE_DEBUG=1; a
    llowed CE_DEBUG levels: 1=min, 2=good, 3=max)
    CERuntim_init
    @0,074,444us: [+7 T:0x40af1490] OP - Processor_create_d> Loading and starting DS
    P server 'PhocusALG.x64P' FAILED, status=[0x80008013] (look for error code 'DSP_
    EBASE + 0x13' in dsplink*/packages/dsplink/gpp/inc/usr/errbase.h) This error cod
    e typically indicates a problem with the DSP memory map, i.e. it is different fr
    om what the Arm side specified; check the DSP server's memory map in your Arm ap
    plication .cfg script, and make sure you have set 'armDspLinkConfig' configurati
    on variable correctly (for details, refer to the documentation for ti.sdo.ce.Eng
    ine.xdc). Also, verify that the DSPLINKMEM segment on the DSP is large enough.
    @0,074,707us: [+6 T:0x40af1490] OP - Processor_delete_d> Closing remote transpor
    t FAILED, status=0x80008000.
    @0,074,841us: [+6 T:0x40af1490] OP - Processor_delete_d> Stopping DSP FAILED, st
    atus=0x80008000
    @0,079,512us: [+6 T:0x4001ed50] CE - rserverOpen: can't start 'PhocusALG.x64P';
    Processor_create failed
    Failed to open codec engine: encode

     

    my codes of application is very simple, it just have one file(main.c), and just one function(main)

    #include <stdio.h>
    #include <xdc/std.h>
    #include <ti/sdo/ce/Engine.h>
    #include <ti/sdo/ce/CERuntime.h>

    Engine_Handle    g_hEngine       = NULL ;

    int main ( int argc, char** argv)
    {
     CERuntime_init() ;

     printf("CERuntim_init\n") ;

     g_hEngine = Engine_open((Char*)"encode", NULL, NULL) ;
     if(NULL == g_hEngine)
     {
      printf("Failed to open codec engine: %s\n", "encode") ;
      return -1 ;
     }

        if(NULL != g_hEngine)
             Engine_close(g_hEngine) ;
     g_hEngine = NULL ;

     CERuntime_exit() ;

     printf("CERuntim_exit\n") ;

     return 1 ;
    }

    my .cfg file of application as following:

    function tryEngineCreate(engineName, serverImagePath, serverPkgName) {
        try {
            var myEngine = Engine.createFromServer(engineName,
                    serverImagePath,
                    serverPkgName);
        }
        catch (e) {
            print("\n      Failed to create engine \"" + engineName +
                    "\" since \"" + serverPkgName +
                    "\" could not be found in the XDC_PATH, continuing build..\n");
        }
    }

    /* Load support for the Codec Engine OS Abstraction Layer */
    var osalGlobal = xdc.useModule( 'ti.sdo.ce.osal.Global' );

    if (prog.build.target.isa == "v5t" || prog.build.target.isa == "v5T") {
        if (prog.platformName == "ti.platforms.evmDM355") {
            /* Configure the OSAL to use it's Linux version */
            osalGlobal.runtimeEnv = osalGlobal.LINUX;
        }
        else if (prog.platformName == "ti.platforms.evmDM365") {
            /* Configure the OSAL to use it's Linux version */
            osalGlobal.runtimeEnv = osalGlobal.LINUX;
        }
        else if (prog.platformName == "ti.platforms.evmDM6446") {
            /* Configure the OSAL to use it's DSP Link Linux version */
            osalGlobal.runtimeEnv = osalGlobal.DSPLINK_LINUX;
        }
        else if (prog.platformName == "ti.platforms.evmDM357") {
            /* Configure the OSAL to use it's DSP Link Linux version */
            osalGlobal.runtimeEnv = osalGlobal.DSPLINK_LINUX;
        }
        else if (prog.platformName == "ti.platforms.evmDM6467") {
            var os = xdc.useModule('ti.sdo.ce.osal.linux.Settings');
            osalGlobal.os = os;

            /* Configure CE to use it's DSP Link Linux version */
            var ipc = xdc.useModule('ti.sdo.ce.ipc.Settings');
            ipc.commType = ipc.COMM_DSPLINK;

     //ipc.ipc = xdc.useModule('ti.sdo.ce.ipc.linux.Ipc');
     //osalGlobal.runtimeEnv = osalGlobal.DSPLINK_LINUX;
        }
        else if (prog.platformName == "ti.platforms.evm3530") {
            /* Load the Codec Engine 'Operating System Abstraction Layer' */
            var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global') ;
            osalGlobal.runtimeEnv = osalGlobal.DSPLINK_LINUX;
        }
        else {
            print("*** Error: *** Unknown platform name " + prog.platformName);
        }
    }
    else if (prog.build.target.isa == "64P") {
        /* Configure CE to use it's DSP/BIOS version */
        osalGlobal.runtimeEnv = osalGlobal.DSPBIOS;

        osalGlobal.defaultMemSegId = "DDR2";
    }
    else {
        print("*** Error: *** Unknown isa " + prog.build.target.isa);
    }

    /* Load support for the DMAI module */
    var DMAI = xdc.loadPackage('ti.sdo.dmai');

     

     

    waiting for your replying, Thank you very much

  • http://processors.wiki.ti.com/index.php/Codec_Engine_FAQ#Why_do_I_get_error_0x80008013_during_Engine_open.28.29

    Make sure your DSP memory map doesn't overlap with Linux.  You might sanity check the .map file generated when building your DSP executable.

    Chris