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.

dm816x universal copy example

Other Parts Discussed in Thread: OMAP3530, DM3730

Hi,

I cannot run CE universal copy example provided in EZSDK 5.04.00.11 and using dm816x-evm. Here is the error after executing the /usr/share/ti/ti-codec-engine-examples/universal_copy/app_remote.xv5T application:

[t=0x00001b15] [tid=0x40074000] xdc.runtime.Main: main> ti.sdo.ce.examples.appsy
[t=0x00001fea] [tid=0x40074000] xdc.runtime.Main: [+1] App-> Application starte.
App-> ERROR: can't open engine remote_copy_DSP                                  
[t=0x00002751] [tid=0x40074000] xdc.runtime.Main: [+1] app done.

Any idea? The other CE examples work well.

Regards,
gaston

  • Gaston,

    This error indicates that CE can't find your codec server executable.

    CE applications generally require the codec server (remote_copy_DSP.xe674 in your case) to be located in the same directory as the application, or more specifically, in the same directory from where you launch the application.  It's simplest to just have the application and server in the same directory, and to "% cd" into that directory to launch the application.  It's odd that other CE examples work well while this one doesn't.

    Do you have remote_copy_DSP.xe674 located in the "universal copy" application directory?

    Regards,

    - Rob

  • Rob,

    Here is the content of universal copy and other example directories such as vidanalytics, video_copy and so on


    all_DSP.xe674
    app_remote.xv5T
    in.dat
    out.dat

    I cannot find the remote_copy_DSP.xe674 file in these directories.

    Regards,
    gaston

  • Gaston,

    I erred in my previous query, where I was confusing the Engine name with the server executable name.

    'all_DSP.xe674' is your server, and I suspect that you're not using the '-s xe674' option when running app_remote.xv5T.  Without that option, the default behaviour of the example is to use the suffix '.x64P' to find the remote server executable.

    Sorry for the mistake.

    Regards,

    - Rob

     

  • Rob,


    Thank you for your help. I tried to execute the universal example with the -s xe674 option and it works well now. In the vidanalytics and other examples I can see the same all_DSP.xe674 server file. Why the -s option does not needed in these cases? I cannot find a file with the suffix .x64P and I think it is okay because I am not working with a C64 platform. Am I right?

    Regards,
    gaston

  • Gaston Schelotto said:
    In the vidanalytics and other examples I can see the same all_DSP.xe674 server file. Why the -s option does not needed in these cases?

    Gaston,

    When you mentioned that all the other CE examples worked I was hesitant to even mention my suggested fix, since I was thinking the same thing as you - "why would '-s xe674' be needed with the universal example and not the others?"

    Sorry to say, but I'm not sure.  You can view the source code for the examples' main() function, usually in a file named 'main_native.c'.  In there you will find the 'procSuffix' variable which is initialized to the default value of "x64P".

    Perhaps the EZSDK has somehow "packaged" the '-s xe674' option in a run script?  Doesn't sound like so, from your description, but it's a shot in the dark.

    Gaston Schelotto said:
    I cannot find a file with the suffix .x64P and I think it is okay because I am not working with a C64 platform. Am I right?

    Yep, for the TI816x platform you should find only the .xe674 suffix.

    Regards,

    - Rob

     

  • Rob,

    I've found the 'procSuffix' variable in ti/sdo/ce/examples/apps/universal_copy/main_hlos_remote.c instead main_native.c. As you mentioned the default value of this variable is 'x64P' with the option to change it if the -s option has entered.

    Robert Tivy said:
    When you mentioned that all the other CE examples worked

    I think I've precipitated with this statement. Here is a complete list of CE examples working/not working with the -s option on my dm816 target board.

    example -s option needed comments
    audio1_copy N
    audio1_ires Y (xe674) broken link to ../servers/audio1_ires/audio1_ires_DSP.xe674
    audio_copy N
    image1_copy N
    image_copy N
    scale N
    server_api_example Y (xe674) broken link to ../servers/server_api_example/audio_copy_DSP.xe674
    speech N
    speech1_copy Y (xe674)
    speech_copy N
    universal_copy Y (xe674)
    vidanalytics N
    video1_copy Y (xe674)
    video2_copy N
    video3_copy N
    video_copy N
    vidtranscode N

    Last thing. Example app sources working with the -s option are organized somehow in local/remote files such as main_bios_local.c, main_bios_remote.c, main_hlos_local.c, main_hlos_remote.c, local.cfg and remote.cfg whereas other examples use fewer files: main_BIOS.c, main_native.c, local.cfg.

    I'd also like to know the difference of these arrangements.

    Regards,
    gaston

  • Gaston,

    I've looked into the example set some more...

    The examples that need the "-s xe674" option have a common layout that uses the Engine_add() API to create an Engine dynamically.  The ones that don't need the "-s" option create the Engine statically in the .cfg file, deducing the correct server extension based on the platform for which it is built (the XDC .cfg world knows about the platform and target, the C world doesn't).  Further, the examples that don't need "-s" actually allow the option but do nothing with it (note that in those examples the local variable 'procSuffix' is set and never referenced), or in other words, you could specify a different extension but it would not get honored.

    As follows from that explanation, there is a benefit of sorts to creating the Engine at runtime - developers can create a host application that is not directly tied to the remote server name, allowing the application to be used with a number of different remote servers with different executable file names, that are otherwise configured appropriately for that application.  This may not seem like much of a benefit for the typical user who builds for just one platform, but for developers (such as my team) it offers a nice benefit.

    Having said all that, the example set is currently being cleaned up and will have a more consistent structure in the next Codec Engine release (3.23, coming up in July).

    Gaston Schelotto said:
    audio1_iresY (xe674)broken link to ../servers/audio1_ires/audio1_ires_DSP.xe674

    I don't understand what you mean by "broken link", but FYI, the two examples for which you added that comment are the ones that don't use the "all_codecs" remote server (all_DSP.xe674).

    Gaston Schelotto said:

    Last thing. Example app sources working with the -s option are organized somehow in local/remote files such as main_bios_local.c, main_bios_remote.c, main_hlos_local.c, main_hlos_remote.c, local.cfg and remote.cfg whereas other examples use fewer files: main_BIOS.c, main_native.c, local.cfg.

    I'd also like to know the difference of these arrangements.

    The example set in Codec Engine has a long history of development and suffer somewhat from cut-and-paste waste - when a new example is added, it is typically first copied from an existing example and then modified to suit the particular new example, with extraneous stuff sometimes not removed.  Then that new example might become the basis for another new one, etc., until it has evolved to a not-so-clean state.

    When a new feature is added to CE, such as the dynamic Engine creation exemplified by universal_copy, an existing example might be chosen to demonstrate this new feature while all the other ones still use the "old way" before the feature was added.  Then, per my explanation above, a completely new example might be created, and this example needs to choose how the Engine is created - either the "old" static way or the "new" dynamic way.  It's somewhat arbitrary.

    As for the different main_this_and_that.c naming...

    Notice that the examples that follow the main_BIOS.c/main_native.c/local.cfg model are just "local" examples that don't use a remote server executable - both the application and the Engine with its codecs all run locally on one processor.  The distinction between main_BIOS.c and main_native.c has to do with what the underlying OS is on that single processor - main_BIOS.c for local CE applications that run only on a SYS/BIOS system, and main_native.c for applications that run only on the "native" system, i.e., Linux or QNX or WinCE.

    The examples that follow the main_hlos_*.c and main_bios_*.c correspond to the 4 different topologies that can be used with those examples:
        main_hlos_remote.c - app runs on HLOS (e.g., Linux), server is remote (with SYS/BIOS implied)
        main_hlos_local.c - app and Engine run on HLOS
        main_bios_local.c - app and Engine run on single-processor SYS/BIOS
        main_bios_remote.c - app runs on SYS/BIOS, remote server runs on different processor running SYS/BIOS

    Regards,

    - Rob

     

  • Rob,

    Robert Tivy said:

    Having said all that, the example set is currently being cleaned up and will have a more consistent structure in the next Codec Engine release (3.23, coming up in July).

    Thank you for giving such a clear explanation. I'll be awaiting for this new release.

    Robert Tivy said:
    I don't understand what you mean by "broken link", but FYI, the two examples for which you added that comment are the ones that don't use the "all_codecs" remote server (all_DSP.xe674).

    The remote server filename of both examples are not linked (to file) correctly.

    After restoring the broken link file with the 'ln' command both examples works well.

    Regards,
    gaston

  • Hello ,have you solved the problem?I encounter the same question,and I don not know how to solve it.

    App-> ERROR: can't open engine universal_copy

    Looking forward to your reply.

    Regards

  • hua zhang2 said:
    Hello ,have you solved the problem?I encounter the same question,and I don not know how to solve it.

    Yes, you can find the hints in the 8th post.

    Regards,
    gaston

  • gaston,

    Thanks for your reply,I'll try again.

     

    Regards,

    hua zhang

  • Rob,

    According to what you said, I don't really understand, the suffix of my remote server executable is '.x64P'.I also put the server executable program in the same directory from where I launch the application .Here is the content of universal copy:universal.x64p, app_remote.xv5T, in.dat, out.dat.

    But when I execute the /universal_copy/app_remote.xv5T application, the error as follows:

    app: error: can't open engine universal_copy                                   

    @0x000830a6:[T:0x4001e320] ti.sdo.ce.examples.apps.universal_copy - app done. 

    I really don't know how to solve the problem.Please help me.

    Looking forward to your reply,thanks

     

    Regards,

        hua zhang

  • Hello,

    The example applications have gone through many changes over the years, so I would need to know which version of Codec Engine that you are using.  Can you tell me your Codec Engine version information, as well as which TI processor chip you are using?

    Also, what is the exact command line you use to launch the application?

    Usually the DSP server executable name is "all.x64P" or "all_DSP.x64P" (for a OMAP3530, which I assume is the part you are using).  Could you please try renaming (or just copying) your server executable to "all.x64P" or "all_DSP.x64P" and trying again?

    If that doesn't help, could you please rerun your application with the environment variable CE_DEBUG set to either 2 or 3 and include the output with your reply?  For example:
      for csh or tcsh:
        % setenv CE_DEBUG 2
      or for sh or bash:
        $ CE_DEBUG=2
        $ export CE_DEBUG

    Regards,

    - Rob

     

  • Rob,

    Thanks for your reply.I tried renaming my server executable to "all.x64P" and recompile,so I rerun my application but it appeared the same error.

    # CE_DEBUG=3 ./app_remote.xv5T

    @0,944,336us: [+4 T:0x4001e320 S:0xbecb1bec] OG - Global_init> This program was built with the following packages:
    @0,944,580us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.ce.global (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/codec-engine_2_26_01_09/packages/ti/sdo/ce/global/) [1, 0, 0]
    @0,944,641us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package dsplink.gpp (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/dsplink_1_65_00_02/dsplink/gpp/) [5, 0, 0]
    @0,944,672us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.linuxutils.cmem (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/linuxutils_2_25_05_11/packages/ti/sdo/linuxutils/cmem/) [2, 2, 0]
    @0,944,702us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.bios.power (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/local-power-manager_1_24_02_09/packages/ti/bios/power/) [1, 1, 1]
    @0,944,733us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package gnu.targets (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/xdctools_3_16_03_36/packages/gnu/targets/) [1, 0, 1]
    @0,944,733us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package gnu.targets.arm (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/xdctools_3_16_03_36/packages/gnu/targets/arm/) [1, 0, 0, 0]
    @0,944,764us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.utils.trace (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/framework-components_2_25_03_07/packages/ti/sdo/utils/trace/) [1, 0, 0]
    @0,944,794us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.xdais.dm (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/xdais_6_26_01_03/packages/ti/xdais/dm/) [1, 0, 5]
    @0,944,825us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.xdais (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/xdais_6_26_01_03/packages/ti/xdais/) [1, 2.0, 1]
    @0,944,855us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.ce.node (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/codec-engine_2_26_01_09/packages/ti/sdo/ce/node/) [1, 0, 0]
    @0,944,886us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.ce.utils.xdm (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/codec-engine_2_26_01_09/packages/ti/sdo/ce/utils/xdm/) [1, 0, 2]
    @0,944,886us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.fc.global (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/framework-components_2_25_03_07/packages/ti/sdo/fc/global/) [1, 0, 0]
    @0,944,916us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.fc.memutils (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/framework-components_2_25_03_07/packages/ti/sdo/fc/memutils/) [1, 0, 0]
    @0,944,947us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.fc.utils (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/framework-components_2_25_03_07/packages/ti/sdo/fc/utils/) [1, 0, 2]
    @0,944,977us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.fc.dman3 (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/framework-components_2_25_03_07/packages/ti/sdo/fc/dman3/) [1, 0, 4]
    @0,945,008us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.fc.acpy3 (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/framework-components_2_25_03_07/packages/ti/sdo/fc/acpy3/) [1, 0, 4]
    @0,945,038us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.catalog.arm (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/xdctools_3_16_03_36/packages/ti/catalog/arm/) [1, 0, 1, 0]
    @0,945,069us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.catalog (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/xdctools_3_16_03_36/packages/ti/catalog/) [1, 0, 0]
    @0,945,099us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.catalog.c6000 (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/xdctools_3_16_03_36/packages/ti/catalog/c6000/) [1, 0, 0, 0]
    @0,945,099us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.platforms.evm3530 (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/xdctools_3_16_03_36/packages/ti/platforms/evm3530/) [1, 0, 0]
    @0,945,130us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.ce.osal (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/codec-engine_2_26_01_09/packages/ti/sdo/ce/osal/) [2, 0, 2]
    @0,945,160us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.ce.osal.linux (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/codec-engine_2_26_01_09/packages/ti/sdo/ce/osal/linux/) [2, 0, 1]
    @1,280,335us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.ce.ipc (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/codec-engine_2_26_01_09/packages/ti/sdo/ce/ipc/) [2, 0, 1]
    @1,280,396us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.ce.ipc.dsplink (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/codec-engine_2_26_01_09/packages/ti/sdo/ce/ipc/dsplink/) [2, 0, 1]
    @1,280,426us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.ce.alg (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/codec-engine_2_26_01_09/packages/ti/sdo/ce/alg/) [1, 0, 1]
    @1,280,457us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.ce (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/codec-engine_2_26_01_09/packages/ti/sdo/ce/) [1, 0, 6]
    @1,280,457us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.ce.universal (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/codec-engine_2_26_01_09/packages/ti/sdo/ce/universal/) [1, 0, 0]
    @1,280,488us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package codecs.all (/demo/codecs/all/) [1, 0, 0]
    @1,280,518us: [+4 T:0x4001e320 S:0xbecb1bec] OG -     package ti.sdo.ce.examples.apps.universal_copy (/home/davinci/dm3730/dvsdk_dm3730_4_00_00_22/codec-engine_2_26_01_09/examples/ti/sdo/ce/examples/apps/un]
    @1,280,549us: [+0 T:0x4001e320 S:0xbecb1bf4] OG - Global_atexit> enter (fxn=0x1bcf4)
    @1,280,579us: [+0 T:0x4001e320 S:0xbecb1bf4] OG - Global_atexit> enter (fxn=0x1b140)
    @1,280,610us: [+0 T:0x4001e320 S:0xbecb1bc4] OM - Memory_alloc> Enter(0x18)
    @1,280,671us: [+0 T:0x4001e320 S:0xbecb1bc4] OM - Memory_alloc> return (0x460f0)
    @1,280,793us: [+0 T:0x4001e320 S:0xbecb1be4] OG - Global_atexit> enter (fxn=0x18fc8)
    @1,280,854us: [+0 T:0x4001e320 S:0xbecb1bbc] OM - Memory_alloc> Enter(0x18)
    @1,280,884us: [+0 T:0x4001e320 S:0xbecb1bbc] OM - Memory_alloc> return (0x46140)
    @1,280,884us: [+0 T:0x4001e320 S:0xbecb1bdc] OG - Global_atexit> enter (fxn=0x17df4)
    @1,280,945us: [+0 T:0x4001e320 S:0xbecb1be4] OG - Global_atexit> enter (fxn=0x1a7a4)
    @1,280,976us: [+0 T:0x4001e320 S:0xbecb1bdc] ti.sdo.ce.osal.Sem - Sem_create> count: 0
    @1,281,006us: [+0 T:0x4001e320 S:0xbecb1bc4] OM - Memory_alloc> Enter(0x14)
    @1,281,037us: [+0 T:0x4001e320 S:0xbecb1bc4] OM - Memory_alloc> return (0x461c0)
    @1,281,067us: [+0 T:0x4001e320 S:0xbecb1bdc] ti.sdo.ce.osal.Sem - Leaving Sem_create> sem[0x461c0]
    @1,281,098us: [+0 T:0x4001e320 S:0xbecb1bdc] ti.sdo.ce.osal.Sem - Sem_create> count: 0
    @1,281,098us: [+0 T:0x4001e320 S:0xbecb1bc4] OM - Memory_alloc> Enter(0x14)
    @1,281,128us: [+0 T:0x4001e320 S:0xbecb1bc4] OM - Memory_alloc> return (0x461d8)
    @1,281,159us: [+0 T:0x4001e320 S:0xbecb1bdc] ti.sdo.ce.osal.Sem - Leaving Sem_create> sem[0x461d8]
    @1,281,159us: [+0 T:0x4001e320 S:0xbecb1bc4] OM - Memory_alloc> Enter(0x18)
    @1,281,189us: [+0 T:0x4001e320 S:0xbecb1bc4] OM - Memory_alloc> return (0x461f0)
    @1,281,220us: [+0 T:0x4001e320 S:0xbecb1bbc] OT - Thread_create> Enter (fxn=0x16038, attrs=0x0)
    @1,281,250us: [+0 T:0x4001e320 S:0xbecb1ba4] OM - Memory_alloc> Enter(0x64)
    @1,281,250us: [+0 T:0x4001e320 S:0xbecb1ba4] OM - Memory_alloc> return (0x46210)
    @1,281,464us: [+0 T:0x4001e320 S:0xbecb1bbc] OT - Thread_create> Exit (task=0x46210)
    @1,281,525us: [+0 T:0x4001e320 S:0xbecb1be4] OG - Global_atexit> enter (fxn=0x174f8)
    @1,281,525us: [+0 T:0x4001e320 S:0xbecb1bf4] OG - Global_atexit> enter (fxn=0x15a50)
    @1,281,556us: [+0 T:0x4001e320 S:0xbecb1bf4] OG - Global_atexit> enter (fxn=0x18340)
    @1,281,617us: [+0 T:0x4001e320 S:0xbecb1bdc] ti.sdo.ce.alg - ALG_init> Enter
    @1,281,647us: [+0 T:0x4001e320 S:0xbecb1bfc] ti.sdo.ce.alg - ALG_init> Exit
    @1,281,678us: [+0 T:0x4001e320 S:0xbecb1bf4] OG - Global_atexit> enter (fxn=0x120d4)
    @1,281,678us: [+0 T:0x4001e320 S:0xbecb1bcc] OM - Memory_alloc> Enter(0x18)
    @1,615,937us: [+0 T:0x4001e320 S:0xbecb1bcc] OM - Memory_alloc> return (0x46418)
    @1,615,967us: [+0 T:0x4001e320 S:0xbecb1bf4] OG - Global_atexit> enter (fxn=0x1ac94)
    @1,616,028us: [+6 T:0x4001e320 S:0xbecb1be4] CE - Engine_init> CE debugging on (CE_DEBUG=3; allowed CE_DEBUG levels: 1=min, 2=good, 3=max)
    @1,616,059us: [+0 T:0x4001e320 S:0xbecb1bd4] OG - Global_atexit> enter (fxn=0xe5cc)
    @1,616,089us: [+0 T:0x4001e320 S:0xbecb1bb4] OM - Memory_alloc> Enter(0x18)
    @1,616,120us: [+0 T:0x4001e320 S:0xbecb1bb4] OM - Memory_alloc> return (0x46458)
    @1,616,120us: [+0 T:0x4001e320 S:0xbecb1bb4] OM - Memory_alloc> Enter(0x18)
    @1,616,150us: [+0 T:0x4001e320 S:0xbecb1bb4] OM - Memory_alloc> return (0x46478)
    @1,616,181us: [+0 T:0x4001e320 S:0xbecb1bb4] OM - Memory_alloc> Enter(0x18)
    @1,616,211us: [+0 T:0x4001e320 S:0xbecb1bb4] OM - Memory_alloc> return (0x46498)
    @1,616,242us: [+0 T:0x4001e320 S:0xbecb1c04] CS - Server_init()
    @1,616,272us: [+0 T:0x4001e320 S:0xbecb1c04] CS - Server_init> Global_useLinkArbiter = 0
    @1,616,272us: [+0 T:0x4001e320 S:0xbecb1c04] OG - Global_atexit> enter (fxn=0xbe3c)
    @1,616,303us: [+2 T:0x4001e320 S:0xbecb1c14] ti.sdo.ce.examples.apps.universal_copy - main> ti.sdo.ce.examples.apps.universal_copy
    @1,616,456us: [+1 T:0x4001e320 S:0xbecb1be4] ti.sdo.ce.examples.apps.universal_copy - App-> Application started.
    @1,616,486us: [+0 T:0x4001e320 S:0xbecb1bcc] OM - Memory_alloc> Enter(0x400)
    @1,616,517us: [+0 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> Enter(size=1024, align=-1, cached=FALSE, heap=FALSE)
    @1,616,578us: [+4 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> CMEM_alloc(1024) = 0x40020000.
    @1,616,639us: [+4 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> CMEM_getPhys(0x40020000) = 0x86328000.
    @1,616,669us: [+1 T:0x4001e320 S:0xbecb1b3c] OM - Memory__addContigBuf> Enter(virtAddr=0x40020000, size=1024, physAddr=0x86328000)
    @1,616,669us: [+1 T:0x4001e320 S:0xbecb1b3c] OM - Memory__addContigBuf> creating new contigBuf object
    @1,616,700us: [+0 T:0x4001e320 S:0xbecb1b24] OM - Memory_alloc> Enter(0x10)
    @1,616,730us: [+0 T:0x4001e320 S:0xbecb1b24] OM - Memory_alloc> return (0x46528)
    @1,616,761us: [+1 T:0x4001e320 S:0xbecb1b3c] OM - Memory__addContigBuf> returning: cb->phys=0x86328000, cb->size=1024, cb->virt=0x40020000
    @1,616,761us: [+0 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> return (0x40020000)
    @1,616,791us: [+0 T:0x4001e320 S:0xbecb1bcc] OM - Memory_alloc> return (0x40020000)
    @1,616,822us: [+0 T:0x4001e320 S:0xbecb1bcc] OM - Memory_alloc> Enter(0x400)
    @1,616,852us: [+0 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> Enter(size=1024, align=-1, cached=FALSE, heap=FALSE)
    @1,616,883us: [+4 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> CMEM_alloc(1024) = 0x40021000.
    @1,616,913us: [+4 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> CMEM_getPhys(0x40021000) = 0x86329000.
    @1,616,944us: [+1 T:0x4001e320 S:0xbecb1b3c] OM - Memory__addContigBuf> Enter(virtAddr=0x40021000, size=1024, physAddr=0x86329000)
    @1,616,974us: [+1 T:0x4001e320 S:0xbecb1b3c] OM - Memory__addContigBuf> creating new contigBuf object
    @1,616,974us: [+0 T:0x4001e320 S:0xbecb1b24] OM - Memory_alloc> Enter(0x10)
    @1,617,005us: [+0 T:0x4001e320 S:0xbecb1b24] OM - Memory_alloc> return (0x46540)
    @1,617,035us: [+1 T:0x4001e320 S:0xbecb1b3c] OM - Memory__addContigBuf> returning: cb->phys=0x86329000, cb->size=1024, cb->virt=0x40021000
    @1,617,066us: [+0 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> return (0x40021000)
    @1,617,096us: [+0 T:0x4001e320 S:0xbecb1bcc] OM - Memory_alloc> return (0x40021000)
    @1,617,096us: [+0 T:0x4001e320 S:0xbecb1bcc] OM - Memory_alloc> Enter(0x80)
    @1,617,127us: [+0 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> Enter(size=128, align=-1, cached=FALSE, heap=FALSE)
    @1,951,478us: [+4 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> CMEM_alloc(128) = 0x40022000.
    @1,951,508us: [+4 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> CMEM_getPhys(0x40022000) = 0x8632a000.
    @1,951,539us: [+1 T:0x4001e320 S:0xbecb1b3c] OM - Memory__addContigBuf> Enter(virtAddr=0x40022000, size=128, physAddr=0x8632a000)
    @1,951,569us: [+1 T:0x4001e320 S:0xbecb1b3c] OM - Memory__addContigBuf> creating new contigBuf object
    @1,951,600us: [+0 T:0x4001e320 S:0xbecb1b24] OM - Memory_alloc> Enter(0x10)
    @1,951,630us: [+0 T:0x4001e320 S:0xbecb1b24] OM - Memory_alloc> return (0x46558)
    @1,951,630us: [+1 T:0x4001e320 S:0xbecb1b3c] OM - Memory__addContigBuf> returning: cb->phys=0x8632a000, cb->size=128, cb->virt=0x40022000
    @1,951,661us: [+0 T:0x4001e320 S:0xbecb1b84] OM - Memory_contigAlloc> return (0x40022000)
    @1,951,691us: [+0 T:0x4001e320 S:0xbecb1bcc] OM - Memory_alloc> return (0x40022000)
    @1,951,813us: [+0 T:0x4001e320 S:0xbecb1b84] CE - Engine_open> Enter('universal_copy', 0x0, 0xbecb1bf4)
    @1,951,844us: [+0 T:0x4001e320 S:0xbecb1b6c] OM - Memory_alloc> Enter(0x34)
    @1,951,874us: [+0 T:0x4001e320 S:0xbecb1b6c] OM - Memory_alloc> return (0x46850)
    @1,951,905us: [+0 T:0x4001e320 S:0xbecb1b84] CE - rserverOpen('all.x64P'), count = 0
    @1,951,935us: [+0 T:0x4001e320 S:0xbecb1b4c] OP - Processor_create> Enter(imageName='all.x64P', linkCfg='(null)', attrs=0xbecb1bd8)
    @1,951,996us: [+0 T:0x4001e320 S:0xbecb1b34] OM - Memory_alloc> Enter(0x24)
    @1,952,027us: [+0 T:0x4001e320 S:0xbecb1b34] OM - Memory_alloc> return (0x46888)
    @1,952,057us: [+0 T:0x4001e320 S:0xbecb1b2c] OP - doCmd> Enter (cmdId=1, proc=0x46888)
    @1,952,088us: [+0 T:0x4001e320 S:0xbecb1b1c] ti.sdo.ce.osal.Sem - Entered Sem_post> sem[0x461c0]
    @1,952,118us: [+0 T:0x4001e320 S:0xbecb1b2c] ti.sdo.ce.osal.Sem - Leaving Sem_post> sem[0x461c0]
    @1,952,149us: [+0 T:0x4001e320 S:0xbecb1b0c] ti.sdo.ce.osal.Sem - Entered Sem_pend> sem[0x461d8] timeout[0xffffffff]
    @1,952,210us: [+1 T:0x40983490 S:0x40982d64] OP - daemon> thread created.
    @1,952,240us: [+0 T:0x40983490 S:0x40982d64] OP - getCmd_d> Enter (proc=0x40982dd8)
    @1,952,271us: [+0 T:0x40983490 S:0x40982d44] ti.sdo.ce.osal.Sem - Entered Sem_pend> sem[0x461c0] timeout[0xffffffff]
    @1,952,271us: [+0 T:0x40983490 S:0x40982d44] ti.sdo.ce.osal.Sem - Leaving Sem_pend> sem[0x461c0] status[0]
    @1,952,301us: [+0 T:0x40983490 S:0x40982d64] OP - getCmd_d> Exit (result=1)
    @1,952,332us: [+0 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Enter(proc=0x46888)
    @1,952,363us: [+0 T:0x40983490 S:0x40982d44] ti.sdo.ce.ipc.Power - Power_on> Enter(handle=0x468a4)
    @1,952,393us: [+2 T:0x40983490 S:0x40982d44] ti.sdo.ce.ipc.Power - Power_on> Opening Local Power Manager for the DSP on /dev/lpm0...
    @1,952,424us: [+2 T:0x40983490 S:0x40982d44] ti.sdo.ce.ipc.Power - Power_on> Turning on DSP power...
    @1,952,576us: [+2 T:0x40983490 S:0x40982d44] ti.sdo.ce.ipc.Power - Power_on> return (0)
    @1,952,607us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Initializing DSP PROC...
    @1,952,637us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Using DspLink config data for entry #0 [server 'all.x64P']
    @1,952,668us: [+0 T:0x40983490 S:0x40982d4c] OM - Memory_alloc> Enter(0x230)
    @1,952,668us: [+0 T:0x40983490 S:0x40982d4c] OM - Memory_alloc> return (0x468e8)
    @1,952,729us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Adding DSP segment #0 to Link configuration: name='DDR2', startAddress=0x87800000, sizeInBytes=0x400000, shared=1, syncd=0
    @1,952,759us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Adding DSP segment #1 to Link configuration: name='DSPLINKMEM', startAddress=0x87c00000, sizeInBytes=0x200000, shared=1, syncd=0
    @1,952,790us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Adding DSP segment #2 to Link configuration: name='RESET_VECTOR', startAddress=0x87e00000, sizeInBytes=0x80, shared=1, syncd=0
    @2,286,988us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Adding DSP segment #3 to Link configuration: name='IVAMMU', startAddress=0x5d000000, sizeInBytes=0x1000, shared=0, syncd=0
    @2,287,049us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Adding DSP segment #4 to Link configuration: name='L4PER', startAddress=0x49000000, sizeInBytes=0x100000, shared=0, syncd=0
    @2,287,079us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Adding DSP segment #5 to Link configuration: name='IRAM', startAddress=0x5c7f8000, sizeInBytes=0x8000, shared=1, syncd=0
    @2,287,110us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Adding DSP segment #6 to Link configuration: name='L1DSRAM', startAddress=0x5cf04000, sizeInBytes=0x10000, shared=1, syncd=0
    @2,287,140us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Adding DSP segment #7 to Link configuration: name='DDRALGHEAP', startAddress=0x87200000, sizeInBytes=0x600000, shared=0, syncd=0
    @2,287,171us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Adding DSP segment #8 to Link configuration: name='L4CORE', startAddress=0x48000000, sizeInBytes=0x1000000, shared=0, syncd=0
    @2,287,201us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Found 'CMEM' entry, adjusting base and size according to CMEM_getBlock()
    @2,287,232us: [+0 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Setting CMEM base to 0x86300000, size to 0xf00000
    @2,287,232us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Adding DSP segment #9 to Link configuration: name='CMEM', startAddress=0x86300000, sizeInBytes=0xf00000, shared=0, syncd=0
    @2,287,293us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> DODSPCTRL was=0; now=0
    @2,287,323us: [+3 T:0x40983490 S:0x40982d04] OP - LINKCFG_Object generated for PROC_setup(0x44ab4) ...
    @2,287,354us: [+3 T:0x40983490 S:0x40982d04] OP - linkCfg->gppObject->
    @2,287,384us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "ARM9"
    @2,287,384us: [+3 T:0x40983490 S:0x40982d04] OP -   maxMsgqs = 0x82
    @2,287,415us: [+3 T:0x40983490 S:0x40982d04] OP -   maxChnlQueue = 0x10
    @2,287,446us: [+3 T:0x40983490 S:0x40982d04] OP -   poolTableId = 0xffffffff
    @2,287,476us: [+3 T:0x40983490 S:0x40982d04] OP -   numPools = 0x0
    @2,287,476us: [+3 T:0x40983490 S:0x40982d04] OP -
    @2,287,507us: [+3 T:0x40983490 S:0x40982d04] OP - linkCfg->dspConfigs[0]->dspObject->
    @2,287,537us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "OMAP3530"
    @2,287,537us: [+3 T:0x40983490 S:0x40982d04] OP -   dspArch = 0x2
    @2,287,568us: [+3 T:0x40983490 S:0x40982d04] OP -   loaderName = "COFF"
    @2,287,598us: [+3 T:0x40983490 S:0x40982d04] OP -   autoStart = FALSE
    @2,287,629us: [+3 T:0x40983490 S:0x40982d04] OP -   execName = "DEFAULT.OUT"
    @2,287,629us: [+3 T:0x40983490 S:0x40982d04] OP -   doDspCtrl = DSP_BootMode_Boot_NoPwr
    @2,287,659us: [+3 T:0x40983490 S:0x40982d04] OP -   resumeAddr = 0x87e00020
    @2,287,690us: [+3 T:0x40983490 S:0x40982d04] OP -   resetVector = 0x87e00000
    @2,287,720us: [+3 T:0x40983490 S:0x40982d04] OP -   resetCodeSize = 0x80
    @2,287,720us: [+3 T:0x40983490 S:0x40982d04] OP -   maduSize = 0x1
    @2,287,751us: [+3 T:0x40983490 S:0x40982d04] OP -   cpuFreq = 0x6ddd0
    @2,287,781us: [+3 T:0x40983490 S:0x40982d04] OP -   endian = 0x3
    @2,287,812us: [+3 T:0x40983490 S:0x40982d04] OP -   wordSwap = 0x0
    @2,287,812us: [+3 T:0x40983490 S:0x40982d04] OP -   memTableId = 0x0
    @2,287,842us: [+3 T:0x40983490 S:0x40982d04] OP -   memEntries = 0xa
    @2,287,873us: [+3 T:0x40983490 S:0x40982d04] OP -   linkDrvId = 0x0
    @2,287,873us: [+3 T:0x40983490 S:0x40982d04] OP -   arg1 = 0xffffffff
    @2,287,903us: [+3 T:0x40983490 S:0x40982d04] OP -   arg2 = 0xffffffff
    @2,287,934us: [+3 T:0x40983490 S:0x40982d04] OP -   arg3 = 0x0
    @2,622,529us: [+3 T:0x40983490 S:0x40982d04] OP -   arg4 = 0x0
    @2,622,559us: [+3 T:0x40983490 S:0x40982d04] OP -   arg5 = 0xffffffff
    @2,622,590us: [+3 T:0x40983490 S:0x40982d04] OP -
    @2,622,620us: [+3 T:0x40983490 S:0x40982d04] OP - linkCfg->dspConfigs[0]->linkDrvObjects->
    @2,622,620us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "SHMDRV"
    @2,622,651us: [+3 T:0x40983490 S:0x40982d04] OP -   hshkPollCount = 0x989680
    @2,622,681us: [+3 T:0x40983490 S:0x40982d04] OP -   memEntry = 0x1
    @2,622,712us: [+3 T:0x40983490 S:0x40982d04] OP -   ipsTableId = 0x0
    @2,622,712us: [+3 T:0x40983490 S:0x40982d04] OP -   numIpsEntries = 0x1
    @2,622,742us: [+3 T:0x40983490 S:0x40982d04] OP -   poolTableId = 0x0
    @2,622,773us: [+3 T:0x40983490 S:0x40982d04] OP -   numPools = 0x1
    @2,622,803us: [+3 T:0x40983490 S:0x40982d04] OP -   dataTableId = 0x0
    @2,622,803us: [+3 T:0x40983490 S:0x40982d04] OP -   numDataDrivers = 0x1
    @2,622,834us: [+3 T:0x40983490 S:0x40982d04] OP -   mqtId = 0x0
    @2,622,864us: [+3 T:0x40983490 S:0x40982d04] OP -   ringIoTableId = 0x0
    @2,622,895us: [+3 T:0x40983490 S:0x40982d04] OP -   mplistTableId = 0x0
    @2,622,895us: [+3 T:0x40983490 S:0x40982d04] OP -   mpcsTableId = 0x0
    @2,622,925us: [+3 T:0x40983490 S:0x40982d04] OP -
    @2,622,956us: [+3 T:0x40983490 S:0x40982d04] OP - linkCfg->dspConfigs[0]->memTables[0][i].
    @2,622,956us: [+3 T:0x40983490 S:0x40982d04] OP - entry #0:
    @2,622,986us: [+3 T:0x40983490 S:0x40982d04] OP -   entry = 0x0
    @2,623,017us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "DDR2"
    @2,623,047us: [+3 T:0x40983490 S:0x40982d04] OP -   physAddr = 0x87800000
    @2,623,047us: [+3 T:0x40983490 S:0x40982d04] OP -   dspVirtAddr = 0x87800000
    @2,623,078us: [+3 T:0x40983490 S:0x40982d04] OP -   gppVirtAddr = 0xffffffff
    @2,623,108us: [+3 T:0x40983490 S:0x40982d04] OP -   size = 0x400000
    @2,623,139us: [+3 T:0x40983490 S:0x40982d04] OP -   shared = TRUE
    @2,623,139us: [+3 T:0x40983490 S:0x40982d04] OP -   syncd = FALSE
    @2,623,169us: [+3 T:0x40983490 S:0x40982d04] OP - entry #1:
    @2,623,200us: [+3 T:0x40983490 S:0x40982d04] OP -   entry = 0x1
    @2,623,230us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "DSPLINKMEM"
    @2,623,230us: [+3 T:0x40983490 S:0x40982d04] OP -   physAddr = 0x87c00000
    @2,623,261us: [+3 T:0x40983490 S:0x40982d04] OP -   dspVirtAddr = 0x87c00000
    @2,623,291us: [+3 T:0x40983490 S:0x40982d04] OP -   gppVirtAddr = 0xffffffff
    @2,623,322us: [+3 T:0x40983490 S:0x40982d04] OP -   size = 0x200000
    @2,623,322us: [+3 T:0x40983490 S:0x40982d04] OP -   shared = TRUE
    @2,623,353us: [+3 T:0x40983490 S:0x40982d04] OP -   syncd = FALSE
    @2,623,383us: [+3 T:0x40983490 S:0x40982d04] OP - entry #2:
    @2,623,383us: [+3 T:0x40983490 S:0x40982d04] OP -   entry = 0x2
    @2,623,414us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "RESET_VECTOR"
    @2,623,444us: [+3 T:0x40983490 S:0x40982d04] OP -   physAddr = 0x87e00000
    @2,623,475us: [+3 T:0x40983490 S:0x40982d04] OP -   dspVirtAddr = 0x87e00000
    @2,623,475us: [+3 T:0x40983490 S:0x40982d04] OP -   gppVirtAddr = 0xffffffff
    @2,623,505us: [+3 T:0x40983490 S:0x40982d04] OP -   size = 0x80
    @2,623,536us: [+3 T:0x40983490 S:0x40982d04] OP -   shared = TRUE
    @2,623,566us: [+3 T:0x40983490 S:0x40982d04] OP -   syncd = FALSE
    @2,623,566us: [+3 T:0x40983490 S:0x40982d04] OP - entry #3:
    @2,623,597us: [+3 T:0x40983490 S:0x40982d04] OP -   entry = 0x3
    @2,623,627us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "IVAMMU"
    @2,623,627us: [+3 T:0x40983490 S:0x40982d04] OP -   physAddr = 0x5d000000
    @2,623,658us: [+3 T:0x40983490 S:0x40982d04] OP -   dspVirtAddr = 0x5d000000
    @2,623,688us: [+3 T:0x40983490 S:0x40982d04] OP -   gppVirtAddr = 0xffffffff
    @2,623,719us: [+3 T:0x40983490 S:0x40982d04] OP -   size = 0x1000
    @2,623,719us: [+3 T:0x40983490 S:0x40982d04] OP -   shared = FALSE
    @2,623,749us: [+3 T:0x40983490 S:0x40982d04] OP -   syncd = FALSE
    @2,958,191us: [+3 T:0x40983490 S:0x40982d04] OP - entry #4:
    @2,958,222us: [+3 T:0x40983490 S:0x40982d04] OP -   entry = 0x4
    @2,958,222us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "L4PER"
    @2,958,252us: [+3 T:0x40983490 S:0x40982d04] OP -   physAddr = 0x49000000
    @2,958,283us: [+3 T:0x40983490 S:0x40982d04] OP -   dspVirtAddr = 0x49000000
    @2,958,313us: [+3 T:0x40983490 S:0x40982d04] OP -   gppVirtAddr = 0xffffffff
    @2,958,313us: [+3 T:0x40983490 S:0x40982d04] OP -   size = 0x100000
    @2,958,344us: [+3 T:0x40983490 S:0x40982d04] OP -   shared = FALSE
    @2,958,374us: [+3 T:0x40983490 S:0x40982d04] OP -   syncd = FALSE
    @2,958,405us: [+3 T:0x40983490 S:0x40982d04] OP - entry #5:
    @2,958,405us: [+3 T:0x40983490 S:0x40982d04] OP -   entry = 0x5
    @2,958,436us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "IRAM"
    @2,958,466us: [+3 T:0x40983490 S:0x40982d04] OP -   physAddr = 0x5c7f8000
    @2,958,466us: [+3 T:0x40983490 S:0x40982d04] OP -   dspVirtAddr = 0x107f8000
    @2,958,497us: [+3 T:0x40983490 S:0x40982d04] OP -   gppVirtAddr = 0xffffffff
    @2,958,527us: [+3 T:0x40983490 S:0x40982d04] OP -   size = 0x8000
    @2,958,558us: [+3 T:0x40983490 S:0x40982d04] OP -   shared = TRUE
    @2,958,558us: [+3 T:0x40983490 S:0x40982d04] OP -   syncd = FALSE
    @2,958,588us: [+3 T:0x40983490 S:0x40982d04] OP - entry #6:
    @2,958,619us: [+3 T:0x40983490 S:0x40982d04] OP -   entry = 0x6
    @2,958,649us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "L1DSRAM"
    @2,958,649us: [+3 T:0x40983490 S:0x40982d04] OP -   physAddr = 0x5cf04000
    @2,958,680us: [+3 T:0x40983490 S:0x40982d04] OP -   dspVirtAddr = 0x10f04000
    @2,958,710us: [+3 T:0x40983490 S:0x40982d04] OP -   gppVirtAddr = 0xffffffff
    @2,958,710us: [+3 T:0x40983490 S:0x40982d04] OP -   size = 0x10000
    @2,958,741us: [+3 T:0x40983490 S:0x40982d04] OP -   shared = TRUE
    @2,958,771us: [+3 T:0x40983490 S:0x40982d04] OP -   syncd = FALSE
    @2,958,802us: [+3 T:0x40983490 S:0x40982d04] OP - entry #7:
    @2,958,802us: [+3 T:0x40983490 S:0x40982d04] OP -   entry = 0x7
    @2,958,832us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "DDRALGHEAP"
    @2,958,863us: [+3 T:0x40983490 S:0x40982d04] OP -   physAddr = 0x87200000
    @2,958,893us: [+3 T:0x40983490 S:0x40982d04] OP -   dspVirtAddr = 0x87200000
    @2,958,893us: [+3 T:0x40983490 S:0x40982d04] OP -   gppVirtAddr = 0xffffffff
    @2,958,924us: [+3 T:0x40983490 S:0x40982d04] OP -   size = 0x600000
    @2,958,954us: [+3 T:0x40983490 S:0x40982d04] OP -   shared = FALSE
    @2,958,954us: [+3 T:0x40983490 S:0x40982d04] OP -   syncd = FALSE
    @2,958,985us: [+3 T:0x40983490 S:0x40982d04] OP - entry #8:
    @2,959,015us: [+3 T:0x40983490 S:0x40982d04] OP -   entry = 0x8
    @2,959,046us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "L4CORE"
    @2,959,046us: [+3 T:0x40983490 S:0x40982d04] OP -   physAddr = 0x48000000
    @2,959,076us: [+3 T:0x40983490 S:0x40982d04] OP -   dspVirtAddr = 0x48000000
    @2,959,107us: [+3 T:0x40983490 S:0x40982d04] OP -   gppVirtAddr = 0xffffffff
    @2,959,137us: [+3 T:0x40983490 S:0x40982d04] OP -   size = 0x1000000
    @2,959,137us: [+3 T:0x40983490 S:0x40982d04] OP -   shared = FALSE
    @2,959,168us: [+3 T:0x40983490 S:0x40982d04] OP -   syncd = FALSE
    @2,959,198us: [+3 T:0x40983490 S:0x40982d04] OP - entry #9:
    @2,959,198us: [+3 T:0x40983490 S:0x40982d04] OP -   entry = 0x9
    @2,959,229us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "CMEM"
    @2,959,259us: [+3 T:0x40983490 S:0x40982d04] OP -   physAddr = 0x86300000
    @2,959,290us: [+3 T:0x40983490 S:0x40982d04] OP -   dspVirtAddr = 0x86300000
    @2,959,290us: [+3 T:0x40983490 S:0x40982d04] OP -   gppVirtAddr = 0xffffffff
    @2,959,321us: [+3 T:0x40983490 S:0x40982d04] OP -   size = 0xf00000
    @2,959,351us: [+3 T:0x40983490 S:0x40982d04] OP -   shared = FALSE
    @2,959,382us: [+3 T:0x40983490 S:0x40982d04] OP -   syncd = FALSE
    @2,959,382us: [+3 T:0x40983490 S:0x40982d04] OP -
    @3,293,702us: [+3 T:0x40983490 S:0x40982d04] OP - linkCfg->dspConfigs[0]->ipsTables[0][i].
    @3,293,732us: [+3 T:0x40983490 S:0x40982d04] OP - entry #0:
    @3,293,763us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "IPS"
    @3,293,793us: [+3 T:0x40983490 S:0x40982d04] OP -   numIpsEvents = 0x20
    @3,293,793us: [+3 T:0x40983490 S:0x40982d04] OP -   memEntry = 0x1
    @3,293,824us: [+3 T:0x40983490 S:0x40982d04] OP -   gppIntId = 0x1a
    @3,293,854us: [+3 T:0x40983490 S:0x40982d04] OP -   dspIntId = 0x37
    @3,293,885us: [+3 T:0x40983490 S:0x40982d04] OP -   dspIntVectorId = 0x5
    @3,293,885us: [+3 T:0x40983490 S:0x40982d04] OP -   arg1 = 0x2faf080
    @3,293,915us: [+3 T:0x40983490 S:0x40982d04] OP -   arg2 = 0x0
    @3,293,946us: [+3 T:0x40983490 S:0x40982d04] OP -
    @3,293,976us: [+3 T:0x40983490 S:0x40982d04] OP - linkCfg->dspConfigs[0]->poolTables[0][i].
    @3,293,976us: [+3 T:0x40983490 S:0x40982d04] OP -
    @3,294,007us: [+3 T:0x40983490 S:0x40982d04] OP - linkCfg->dspConfigs[0]->dataTables[0][i].
    @3,294,037us: [+3 T:0x40983490 S:0x40982d04] OP - entry #0:
    @3,294,068us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "ZCPYDATA"
    @3,294,068us: [+3 T:0x40983490 S:0x40982d04] OP -   baseChnlId = 0x0
    @3,294,098us: [+3 T:0x40983490 S:0x40982d04] OP -   numChannels = 0x10
    @3,294,129us: [+3 T:0x40983490 S:0x40982d04] OP -   maxBufSize = 0x4000
    @3,294,159us: [+3 T:0x40983490 S:0x40982d04] OP -   memEntry = 0x1
    @3,294,159us: [+3 T:0x40983490 S:0x40982d04] OP -   poolId = 0x0
    @3,294,190us: [+3 T:0x40983490 S:0x40982d04] OP -   queuePerChnl = 0x1
    @3,294,220us: [+3 T:0x40983490 S:0x40982d04] OP -   ipsId = 0x0
    @3,294,220us: [+3 T:0x40983490 S:0x40982d04] OP -   ipsEventNo = 0x1
    @3,294,251us: [+3 T:0x40983490 S:0x40982d04] OP -   arg1 = 0x0
    @3,294,281us: [+3 T:0x40983490 S:0x40982d04] OP -   arg2 = 0x0
    @3,294,312us: [+3 T:0x40983490 S:0x40982d04] OP -
    @3,294,312us: [+3 T:0x40983490 S:0x40982d04] OP - linkCfg->dspConfigs[0]->mqtObjects->
    @3,294,342us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "ZCPYMQT"
    @3,294,373us: [+3 T:0x40983490 S:0x40982d04] OP -   memEntry = 0x1
    @3,294,404us: [+3 T:0x40983490 S:0x40982d04] OP -   maxMsgSize = 0xffffffff
    @3,294,404us: [+3 T:0x40983490 S:0x40982d04] OP -   ipsId = 0x0
    @3,294,434us: [+3 T:0x40983490 S:0x40982d04] OP -   ipsEventNo = 0x0
    @3,294,465us: [+3 T:0x40983490 S:0x40982d04] OP -   arg1 = 0x0
    @3,294,465us: [+3 T:0x40983490 S:0x40982d04] OP -   arg2 = 0x0
    @3,294,495us: [+3 T:0x40983490 S:0x40982d04] OP -
    @3,294,526us: [+3 T:0x40983490 S:0x40982d04] OP - linkCfg->dspConfigs[0]->ringIoObjects->
    @3,294,556us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "RINGIOTABLE"
    @3,294,556us: [+3 T:0x40983490 S:0x40982d04] OP -   memEntry = 0x1
    @3,294,587us: [+3 T:0x40983490 S:0x40982d04] OP -   maxEntries = 0x40
    @3,294,617us: [+3 T:0x40983490 S:0x40982d04] OP -   ipsId = 0x0
    @3,294,648us: [+3 T:0x40983490 S:0x40982d04] OP -   ipsEventNo = 0x2
    @3,294,648us: [+3 T:0x40983490 S:0x40982d04] OP -
    @3,294,678us: [+3 T:0x40983490 S:0x40982d04] OP - linkCfg->dspConfigs[0]->mplistObjects->
    @3,294,709us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "MPLISTTABLE"
    @3,294,709us: [+3 T:0x40983490 S:0x40982d04] OP -   memEntry = 0x1
    @3,294,739us: [+3 T:0x40983490 S:0x40982d04] OP -   maxEntries = 0x40
    @3,294,770us: [+3 T:0x40983490 S:0x40982d04] OP -   ipsId = 0xffffffff
    @3,294,800us: [+3 T:0x40983490 S:0x40982d04] OP -   ipsEventNo = 0xffffffff
    @3,294,800us: [+3 T:0x40983490 S:0x40982d04] OP -
    @3,294,831us: [+3 T:0x40983490 S:0x40982d04] OP - linkCfg->dspConfigs[0]->mpcsObjects->
    @3,294,861us: [+3 T:0x40983490 S:0x40982d04] OP -   name = "MPCS"
    @3,294,892us: [+3 T:0x40983490 S:0x40982d04] OP -   memEntry = 0x1
    @3,294,892us: [+3 T:0x40983490 S:0x40982d04] OP -   maxEntries = 0x100
    @3,294,922us: [+3 T:0x40983490 S:0x40982d04] OP -   ipsId = 0xffffffff
    @3,629,273us: [+3 T:0x40983490 S:0x40982d04] OP -   ipsEventNo = 0xffffffff
    @3,630,555us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Attaching to DSP PROC...
    @3,654,786us: [+7 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Loading and starting DSP server 'all.x64P' FAILED, status=[0x80008052] (look for error code 'DSP_EBASE + 0x52' in dsplink*/packages/dspl
    @3,654,847us: [+0 T:0x40983490 S:0x40982d4c] OP - Processor_delete_d> Enter (proc=0x46888)
    @3,654,877us: [+2 T:0x40983490 S:0x40982d4c] OP - Processor_delete_d> Closing remote transport...
    @3,654,938us: [+6 T:0x40983490 S:0x40982d4c] OP - Processor_delete_d> Closing remote transport FAILED, status=0x80008002.
    @3,654,969us: [+2 T:0x40983490 S:0x40982d4c] OP - Processor_delete_d> Stopping DSP...
    @3,654,999us: [+6 T:0x40983490 S:0x40982d4c] OP - Processor_delete_d> Stopping DSP FAILED, status=0x80008002
    @3,655,030us: [+2 T:0x40983490 S:0x40982d4c] OP - Processor_delete_d> Closing pool...
    @3,655,060us: [+6 T:0x40983490 S:0x40982d4c] OP - Processor_delete_d> Closing pool FAILED, status=0x80008000
    @3,655,091us: [+2 T:0x40983490 S:0x40982d4c] OP - Processor_delete_d> Detaching from DSP...
    @3,655,091us: [+6 T:0x40983490 S:0x40982d4c] OP - Processor_delete_d> Detaching from DSP FAILED, status=0x80008000
    @3,655,121us: [+2 T:0x40983490 S:0x40982d4c] OP - Processor_delete_d> Destroying DSP... (object, that is)
    @3,655,304us: [+0 T:0x40983490 S:0x40982d34] ti.sdo.ce.ipc.Power - Power_off> Enter (handle=0x468b0)
    @3,655,365us: [+2 T:0x40983490 S:0x40982d34] ti.sdo.ce.ipc.Power - Power_off> Turning off DSP power...
    @3,655,457us: [+2 T:0x40983490 S:0x40982d34] ti.sdo.ce.ipc.Power - Power_off> Closing Local Power Manager object...
    @3,655,518us: [+0 T:0x40983490 S:0x40982d34] ti.sdo.ce.ipc.Power - Power_off> return (0)
    @3,655,549us: [+0 T:0x40983490 S:0x40982d2c] OM - Memory_free> Enter(0x468e8, 0x0)
    @3,655,549us: [+0 T:0x40983490 S:0x40982d2c] OM - Memory_free> return (0x1)
    @3,655,579us: [+0 T:0x40983490 S:0x40982d64] OP - Processor_delete_d> return
    @3,655,610us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> return (0)
    @3,655,640us: [+0 T:0x40983490 S:0x40982d54] ti.sdo.ce.osal.Sem - Entered Sem_post> sem[0x461d8]
    @3,655,671us: [+0 T:0x4001e320 S:0xbecb1b0c] ti.sdo.ce.osal.Sem - Leaving Sem_pend> sem[0x461d8] status[0]
    @3,655,732us: [+0 T:0x4001e320 S:0xbecb1b2c] OP - doCmd> Exit (result=2)
    @3,655,732us: [+0 T:0x4001e320 S:0xbecb1b34] OP - Processor_delete> Enter(proc=0x46888)
    @3,655,762us: [+1 T:0x4001e320 S:0xbecb1b34] OP - Processor_delete(0x46888) freeing object ...
    @3,655,793us: [+0 T:0x4001e320 S:0xbecb1b14] OM - Memory_free> Enter(0x46888, 0x24)
    @3,655,823us: [+0 T:0x4001e320 S:0xbecb1b14] OM - Memory_free> return (0x1)
    @3,655,823us: [+0 T:0x4001e320 S:0xbecb1b4c] OP - Processor_delete> return.
    @3,655,854us: [+6 T:0x4001e320 S:0xbecb1b84] CE - rserverOpen: can't start 'all.x64P'; Processor_create failed
    @3,655,884us: [+0 T:0x4001e320 S:0xbecb1b84] CE - rserverOpen('all.x64P'): 0x0 done.
    @3,655,915us: [+0 T:0x4001e320 S:0xbecb1b64] CE - Engine_close(0x46850)
    @3,655,945us: [+0 T:0x4001e320 S:0xbecb1b44] CS - Server_disconnectTrace('0x46850', 0x0)
    @3,655,976us: [+0 T:0x4001e320 S:0xbecb1b44] CS - Server_disconnectTrace> return(0)
    @3,656,006us: [+0 T:0x4001e320 S:0xbecb1b44] OM - Memory_free> Enter(0x46850, 0x34)
    @3,656,006us: [+0 T:0x4001e320 S:0xbecb1b44] OM - Memory_free> return (0x1)

    @3,655,915us: [+0 T:0x4001e320 S:0xbecb1b64] CE - Engine_close(0x46850)
    @3,655,945us: [+0 T:0x4001e320 S:0xbecb1b44] CS - Server_disconnectTrace('0x46850', 0x0)
    @3,655,976us: [+0 T:0x4001e320 S:0xbecb1b44] CS - Server_disconnectTrace> return(0)
    @3,656,006us: [+0 T:0x4001e320 S:0xbecb1b44] OM - Memory_free> Enter(0x46850, 0x34)
    @3,656,006us: [+0 T:0x4001e320 S:0xbecb1b44] OM - Memory_free> return (0x1)
    @3,656,067us: [+0 T:0x4001e320 S:0xbecb1b84] CE - Engine_close exit
    @3,656,159us: [+0 T:0x4001e320 S:0xbecb1874] OG - Global_exit> enter
    @3,656,189us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0xbe3c()...
    @3,656,220us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0xe5cc()...
    @3,656,250us: [+0 T:0x4001e320 S:0xbecb183c] OM - Memory_free> Enter(0x46458, 0x18)
    @3,656,281us: [+0 T:0x4001e320 S:0xbecb183c] OM - Memory_free> return (0x1)
    @3,656,311us: [+0 T:0x4001e320 S:0xbecb183c] OM - Memory_free> Enter(0x46478, 0x18)
    @3,991,761us: [+0 T:0x4001e320 S:0xbecb183c] OM - Memory_free> return (0x1)
    @3,991,791us: [+0 T:0x4001e320 S:0xbecb183c] OM - Memory_free> Enter(0x46498, 0x18)
    @3,991,822us: [+0 T:0x4001e320 S:0xbecb183c] OM - Memory_free> return (0x1)
    @3,991,852us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0x1ac94()...
    @3,991,883us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0x120d4()...
    @3,991,913us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0x18340()...
    @3,991,913us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0x15a50()...
    @3,991,944us: [+0 T:0x4001e320 S:0xbecb1844] OP - doCmd> Enter (cmdId=3, proc=0x0)
    @3,991,974us: [+0 T:0x4001e320 S:0xbecb1834] ti.sdo.ce.osal.Sem - Entered Sem_post> sem[0x461c0]
    @3,992,005us: [+0 T:0x4001e320 S:0xbecb1844] ti.sdo.ce.osal.Sem - Leaving Sem_post> sem[0x461c0]
    @3,992,005us: [+0 T:0x4001e320 S:0xbecb1824] ti.sdo.ce.osal.Sem - Entered Sem_pend> sem[0x461d8] timeout[0xffffffff]
    @3,992,066us: [+0 T:0x40983490 S:0x40982d64] ti.sdo.ce.osal.Sem - Leaving Sem_post> sem[0x461d8]
    @3,992,096us: [+0 T:0x40983490 S:0x40982d64] OP - getCmd_d> Enter (proc=0x40982dd8)
    @3,992,096us: [+0 T:0x40983490 S:0x40982d44] ti.sdo.ce.osal.Sem - Entered Sem_pend> sem[0x461c0] timeout[0xffffffff]
    @3,992,127us: [+0 T:0x40983490 S:0x40982d44] ti.sdo.ce.osal.Sem - Leaving Sem_pend> sem[0x461c0] status[0]
    @3,992,157us: [+0 T:0x40983490 S:0x40982d64] OP - getCmd_d> Exit (result=3)
    @3,992,188us: [+0 T:0x40983490 S:0x40982d54] ti.sdo.ce.osal.Sem - Entered Sem_post> sem[0x461d8]
    @3,992,218us: [+0 T:0x4001e320 S:0xbecb1824] ti.sdo.ce.osal.Sem - Leaving Sem_pend> sem[0x461d8] status[0]
    @3,992,249us: [+0 T:0x4001e320 S:0xbecb1844] OP - doCmd> Exit (result=1)
    @3,992,249us: [+0 T:0x4001e320 S:0xbecb184c] OT - Thread_delete> Enter (task=0x46210)
    @3,992,402us: [+4 T:0x4001e320 S:0xbecb184c] OT - Thread_delete> pthread_cancel (0x0)
    @3,992,707us: [+4 T:0x4001e320 S:0xbecb184c] OT - Thread_delete> pthread_join (0x0)
    @3,992,768us: [+0 T:0x4001e320 S:0xbecb182c] OM - Memory_free> Enter(0x46210, 0x64)
    @3,992,798us: [+0 T:0x4001e320 S:0xbecb182c] OM - Memory_free> return (0x1)
    @3,992,829us: [+0 T:0x4001e320 S:0xbecb1864] OT - Thread_delete> Exit (task=0x46210)
    @3,992,829us: [+0 T:0x4001e320 S:0xbecb1854] ti.sdo.ce.osal.Sem - Entered Sem_delete> sem[0x461c0]
    @3,992,859us: [+0 T:0x4001e320 S:0xbecb1834] OM - Memory_free> Enter(0x461c0, 0x14)
    @3,992,890us: [+0 T:0x4001e320 S:0xbecb1834] OM - Memory_free> return (0x1)
    @3,992,920us: [+0 T:0x4001e320 S:0xbecb1864] ti.sdo.ce.osal.Sem - Leaving Sem_delete>
    @3,992,951us: [+0 T:0x4001e320 S:0xbecb1854] ti.sdo.ce.osal.Sem - Entered Sem_delete> sem[0x461d8]
    @3,992,951us: [+0 T:0x4001e320 S:0xbecb1834] OM - Memory_free> Enter(0x461d8, 0x14)
    @3,992,981us: [+0 T:0x4001e320 S:0xbecb1834] OM - Memory_free> return (0x1)
    @3,993,012us: [+0 T:0x4001e320 S:0xbecb1864] ti.sdo.ce.osal.Sem - Leaving Sem_delete>
    @3,993,042us: [+0 T:0x4001e320 S:0xbecb1844] OM - Memory_free> Enter(0x461f0, 0x18)
    @3,993,042us: [+0 T:0x4001e320 S:0xbecb1844] OM - Memory_free> return (0x1)
    @3,993,073us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0x174f8()...
    @3,993,103us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0x1a7a4()...
    @3,993,134us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0x17df4()...
    @3,993,165us: [+0 T:0x4001e320 S:0xbecb1854] OM - Memory_free> Enter(0x46140, 0x18)
    @3,993,165us: [+0 T:0x4001e320 S:0xbecb1854] OM - Memory_free> return (0x1)
    @3,993,195us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0x18fc8()...
    @3,993,226us: [+0 T:0x4001e320 S:0xbecb1844] OM - Memory_free> Enter(0x460f0, 0x18)
    @4,327,271us: [+0 T:0x4001e320 S:0xbecb1844] OM - Memory_free> return (0x1)
    @4,327,301us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0x1b140()...
    @4,327,332us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0x1bcf4()...
    @4,327,363us: [+2 T:0x4001e320 S:0xbecb1874] OG - Global_exit> calling function *0x1b0a0()...

    The version of my Codec Engine is codec-engine_2_26_01_09,and the version of my DVSDK is dvsdk_4_00_00_22.And my TI processor chip is dm3730. 

    Thanks for your help.I'm very grateful to you.

    Regards,

    hua zhang

  • hua zhang2 said:
    @3,630,555us: [+2 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Attaching to DSP PROC...
    @3,654,786us: [+7 T:0x40983490 S:0x40982d64] OP - Processor_create_d> Loading and starting DSP server 'all.x64P' FAILED, status=[0x80008052] (look for error code 'DSP_EBASE + 0x52' in dsplink*/packages/dspl

    The error code 0x80008052 in DSPLink translates to DSP_ECONFIG (from <dsplink_install_dir>/dsplink/gpp/inc/usr/errbase.h), and it is being returned from CE's call to PROC_attach().  This means that there is a general configuration mismatch.  In order to tell further what is going on, the dsplinkk.ko kernel module should be printing some error information to the console regarding the configuration mismatch.  If you don't see it on the console, it might be visible with the command "$ dmesg".  Could you try running the "dmesg" command after getting the failure, and reporting anything interesting back here?

    DSPLink contains code/data on both the ARM Linux side and the DSP DSP/BIOS side, and the configurations for both sides need to match.  The ARM side is configured when building the DSPLink product, using the --comps option to the dsplinkcfg.pl configuration script.  The DSP/BIOS side is configured through .tcf and/or .tci files, usually spread around in a number of configuration components (the .tcf or .tci files).  One of the harder aspects to get right *used to be* the memory map, where you had to "tell" DSPLink about the DSP executable's memory map, but the CE version that you are using does this automatically, so it's not a memory map problem.  Hopefully your "dmesg" output points to the specific configuration mismatch issue.

    Here are some links that might prove helpful:
        http://processors.wiki.ti.com/index.php/Codec_Engine_Link_Config (this one doesn't list the configuration for CE 2.26, but 2.25's config should be the same)
        http://processors.wiki.ti.com/index.php/Troubleshooting_DSPLink_configuration_issues (this page mentions a DSP_ECONFIG error with PROC_setup() here http://processors.wiki.ti.com/index.php/Troubleshooting_DSPLink_configuration_issues#Problem:_PROC_setup_failure_with_DSP_ECONFIG_error but you are getting DSP_ECONFIG from PROC_attach(), as evidenced by your CE_DEBUG output above)
        http://processors.wiki.ti.com/index.php/Enabling_trace_in_DSPLink (this page shows how to enable DSPLink tracing, which might be needed to further investigate this issue)
        http://processors.wiki.ti.com/index.php/Debugging_DSPLink_using_SET_FAILURE_REASON_prints (more about enabling DSPLink tracing)

    Regards,

    - Rob

     

  • Rob,

     Thank you very much for your help.I run the examples in the dvsdk installation directory. For example,I run CE_INSTALL_DIR/examples/ti/sdo/ce/examples/apps/image_copy and video_copy. They run very well,no errors.So I have an idea. I want to complete my own algorithm program and application program on the basis of the example programs.Please give me some suggestions.

    First of all , how I to choose a template program of the codecs?For example, If I have an image processing algorithm.Should I choose imgdec_copy and imgenc_copy in the CE_INSTALL_DIR/examples/ti/sdo/ce/examples/codecs?But my image processing algorithm may not need to do encoding and decoding process.

    Secondly, how I to choose a template program of the apps? I notice that Many applications use the same dsp server all.x64P, such as image_copy , video_copy, speech_copy , audio_copy.Why do different applications use the same dsp server all.x64P? What is the connection among them?

     Thanks for your help.I'm very grateful to you.I am looking forward for your reply.

     Regards,

     hua zhang

  • hua zhang2 said:

    First of all , how I to choose a template program of the codecs?For example, If I have an image processing algorithm.Should I choose imgdec_copy and imgenc_copy in the CE_INSTALL_DIR/examples/ti/sdo/ce/examples/codecs?But my image processing algorithm may not need to do encoding and decoding process.

    All of the "copy codecs" do just that - they copy from an input buffer to an ouput buffer, simulating either an encoding step or a decoding step.  The main difference between, say, an image copy codec and a video copy codec is the data structures that are used in the "process" and "control" APIs.  Codec Engine codecs must follow the xDM standard, which defines data structures for each of the codec "classes" - video, image, speech, and audio (the acronym VISA is derived from that list).

    hua zhang2 said:

    Secondly, how I to choose a template program of the apps? I notice that Many applications use the same dsp server all.x64P, such as image_copy , video_copy, speech_copy , audio_copy.Why do different applications use the same dsp server all.x64P? What is the connection among them?

    A Codec Engine server can contain many different codecs (or algorithms).  The "all" server contains all the codecs needed by all the examples that use all.x64P.  This makes the CE packaging and building/compiling simpler, as there is only one server to build for all the examples.  Also, it is not too far from the reality of today's devices - many of them need to support multiple decoding and encoding formats at the same time, with a different codec for each.

    hua zhang2 said:
    Secondly, how I to choose a template program of the apps?

    Choose an example application from the CE example set that matches your needs as closely as possible.  As with the codecs, the different apps are mostly the same, with different codec-class-specific data structures used.

    The "universal copy" example is just that - a universal framework that can fit most every type of codec.  Perhaps this is the simplest place for you to start.  See here for some detailed explanation: http://processors.wiki.ti.com/index.php/Getting_started_with_IUNIVERSAL.  That page also has links to many other useful pages for you.  While we're happy to answer your questions on this forum, you could save yourself a lot of time waiting for answers by browsing the multitude of TI wiki pages regarding TI's software offerings.

    Regards,

    - Rob

     

  • Rob,

    Thanks again for your help.You are so enthusiastic.Thanks,I'll study hard.

    Happy new year! Lucky every day.

    Regards,

    hua zhang

     

  • Rob,

    It seems that DM3730 supports DSPLIB.As we all know,the TI C64x+ DSPLIB is an optimized DSP Function Library for C programmers using devices that include the C64x+ megamodule. It includes many C-callable, optimized, general-purpose signal-processing routines. These routines are typically used in computationally intensive real-time applications where optimal execution speed is critical. By using these routines, you can achieve execution speeds considerably faster than equivalent code written in standard ANSI C language.

    I wrote a simple algorithm program.So,now I want to call the fft function of the dsplib to complete my codec and finally compiled into .a64p.But I don’t know how to use the DSPLIB in the dvsdk environment.

    Could you give me some advices?Thank you very much.

     Happy new year!

     Regards,

    hua zhang

  • hua zhang2 said:

    I wrote a simple algorithm program.So,now I want to call the fft function of the dsplib to complete my codec and finally compiled into .a64p.But I don’t know how to use the DSPLIB in the dvsdk environment.

    Hua,

    The DSP executable has a package.bld file (script) that defines how to build it.  In there should be a statement similar to the following:

            Pkg.addExecutable("messageq_example", targ, platform, {
                cfgScript: "messageq_example",
                defs: "-D BENCHMARK"
            }).addObjects(["messageq_example.c"]);
    The lines inside the {} pair define parameters for the executable build.  You can add the following (in red):
            Pkg.addExecutable("messageq_example", targ, platform, {
                cfgScript: "messageq_example",
                defs: "-D BENCHMARK",
                lopts: "-l dsplib",
            }).addObjects(["messageq_example.c"]);
    "lopts" stands for linker options and follows standard linker command line syntax.  You might need to add the complete path (e.g., /path/to/dsplib/dsplib).
     
    FYI, see here for attributes that you can set in that field of the "addExecutable" method: http://rtsc.eclipse.org/cdoc-tip/index.html#xdc/bld/PackageContents.html#add.Executable.  Click the xdc.bld.Executable.Attrs link for a complete list of things you can set.
     
    Happy & Lucky New Year,
     
    Regards,
     
    - Rob
     
  • Dear Rob,

    I'm having problems to install DSPLIB on my PC that is running on Ubuntu 12.10. I downloaded the installer from this link: http://software-dl.ti.com/sdoemb/sdoemb_public_sw/dsplib/latest/index_FDS.html. The installer I downloaded was: DSPLIB for C64x+ Linux Installer. After downloading the file I executed the following commands:

    cd ~/Downloads/
    sudo chmod a+x dsplib_c64Px_3_1_1_1_Linux.bin
    sudo ./dsplib_c64Px_3_1_1_1_Linux.bin

    After I run the last command, no error messages are shown. In fact, no messages are shown at all. However, it looks like nothing is being installed in my system since I can't find any of the files that should be installed.

    I'm working on a project that involves running a program on a Beagleboard. My goal is to be able to use the DSP processor.

    Thanks for your help.

  • Hi Martin,

    Most TI SW components that are packaged up in a .bin file require Ubuntu 10.04 LTS 32-bit (not earlier or later versions).  I don't know specifically about this requirement for DSPLIB, but that's the first thing I would check.  Is there a README.txt file (or some other file) that mentions this restriction?

    I found this link reagarding EZSDK's Ubuntu 10.04 requirement: http://processors.wiki.ti.com/index.php/SDK_5.0_Single_Installer_FAQ.  It mentions that you can use "--forcehost" to bypass this requirement.

    DSPLIB support is forwarded to the BIOS Forum, so if you can't manage to find success with this reply or on your own, please post a new thread to the BIOS forum.  Tacking on to the end of a related thread, as you've done here, won't get the same attention as a new thread.

    Regards,

    - Rob

  • Rob,

    Thank you very much for your answer. Adding the "--forcehost" argument when executing the ".bin" file is the first thing I will try Monday morning.

    Please forgive me for extending this thread with a few more questions even though you told me to move to the BIOS forum, but there is one last thing that I want to ask you. Now that I finished coding my application in "naive" C language and successfully running it on the Beagleboard-Xm, my task is to make it run fast. This is the main reason why I want to be able to use the DSP that is contained in the board. However, I haven't been able to find clear instructions on how to do so. While searching for these instructions, I have stumbled upon several tools and concepts that are new for me. For example, I wasn't acquainted of the DSP/BIOS kernel offered by TI. I understand that this kernel would serve as a replacement of the OS that I'm running currently on the Beagleboard-Xm (Ubutntu). Please correct me if I'm wrong. Do you think that replacing Ubuntu OS with some other OS, for example DSP/BIOS, would be more appropriate according to my goal of making my program run fast?

    My second question has to do with DSPLink/SysLink. I understand that these two pieces of software serve for the communication of data between the GPP and the DSP. If I pretend to use DSPLIB is it necessary to have installed either one of this two programs? In other words, when is a program like DSPLink/SysLink necessary?

    Thanks again.

  • Martin,

    DSP/BIOS is an old product at this point and has been superceded by SYS/BIOS, which is conceptually the same as DSP/BIOS.  DSPLink is conceptually the same as SysLInk, and DSPLink is for use with DSP/BIOS while SysLink is used with SYS/BIOS.

    SYS/BIOS *can* serve as the "host" OS running on the ARM and communicating with the remote core, thus replacing Ubuntu, but I'm not sure that's typical.  The typical setup is Linux running as host on the ARM and Linux applications utilizing SysLink to load & communicate with a SYS/BIOS-based application on the DSP.  Your DSP application can make DSPLIB calls as it needs.  In order to communicate with the DSP using SysLink the DSP application must use SYS/BIOS.  I don't know DSPLIB, but I'd imagine it doesn't require SYS/BIOS or any underlying framework.

    I believe that your best solution is to have a Linux application using SysLink to load/start your SYS/BIOS-based DSP executable, and to communicate/synchronize between the ARM & DSP.  If you want accelerated codecs running on the DSP, you might also consider Codec Engine (CE), which uses SysLink to load/run a SYS/BIOS-based executable on the DSP and issue "process" calls to the DSP-based codec (the ARM issues input buffers to the DSP-based codec and retrieves output buffers/results).

    I encourage you to browse the various TI "wiki"s for further information regarding all this stuff I've mentioned above.

    Regards,

    - Rob

     

  • Hi Rob,

    The "--forcehost" flag did not work for installing DSPLIB in Ubuntu 12.10. However, I installed Ubuntu 10.04 and the installer worked like charm after using the commands that I posted in the previous message. Thanks for your help.