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.

Building Server Package for ARM

Other Parts Discussed in Thread: OMAP3530

Hi All,

I am facing issues in building the server package for ARM, Can any one please help me out to resolve the issue.

I could able to generate codec package and build it using dvsdk_3_00_02_44 and I have selected 470 as my ISA and platform as omap3530, but when trying to build the server package it is throwing a error saying that  "cannot match method called null" at line #43 in .... /daman3/package.xs.

What might be the reason for this issue?

Am I going in right direction in creating and building the package for ARM platform.

Please help out in resolving the issue......

Regards,

Gopi

 

 

 

  • What version of Framework Components and XDC are included in that build of the DVSDK?  (Probably in the directory name, something like framework_components_2_### and xdctools_3_###).

    And to be clear, the error is from "dman3/package.xs", not "daman3/package.xs", right?

    A full build log might help, too - that would likely include the versions of components I'm looking for, too.

    Chris

  • This was an issue in the Framework Components 2.24 release, it was fixed in the 2.25.01 patch release.

     

    A quick fix is to add the following lines in the dman3/package.xs in the validate function:-

     

    function validate()
    {

        var suffix = Program.build.target.findSuffix(this);

        if (null == suffix) {
            return (null);
        }


        if (!(suffix.match(/64P/)) && (!(suffix.match(/674/))) &&
    ...

     

    Add the lines in red above, and you should be able to proceed. This issue was fixed in subsequent releases.

    Gunjan.

  • Thanks Chris and Gunjan for the quick response and helping me out to resolve the issue to some extent. Sorry Chris, Its typo over there its not daman3 it is dman3, but the issue that was mentioned got resolved with the update done dman3/package.xs as said by Gunjan.

    But after resolving this I was stuck with one more issue...

    Here is the log of the issue

    Warning: incompatible use of package 'ti.bios.utils' [in /root/Desktop/gst_CIT/dvsdk_3_00_02_44/biosutils_1_01_00/packages/ti/bios/utils/]: version of the loaded package 'ti.bios.utils' is [2, 0, 1, 00], while 'ti.sdo.ce.osal.bios' [in /root/Desktop/gst_CIT/dvsdk_3_00_02_44/codec_engine_2_24/packages/ti/sdo/ce/osal/bios/] was built with 'ti.bios.utils' [2, 0, 2, 02]
        will link with ti.bios.utils:lib/utils.a470
    js: "/root/Desktop/gst_CIT/dvsdk_3_00_02_44/xdctools_3_15_01_59/packages/xdc/cfg/Main.xs", line 32: XDC runtime error: can't find the library 'lib/utils.a470' specified by package ti.bios.utils.

     

    The problem is I dont have utils.a470 as part of my bios package, where can I get this from?

    Waiting for your response in resolving the issue.

     

    Regards,

    Gopi

  • I missed it from your original post - it looks like you're [incorrectly] providing the ARM target (470) when building your DSP-side Server.

    The error msg is because the DSP-side ti.bios.utils package is being [correctly] configured into the Server, but is [also correctly] giving you an error since the 'target' being thrown at it is an ARM-side target and it doesn't have a ARM-side library.

    Can you provide your full build log?  If you're building with configuro, I think you're passing the wrong value as the '-t <target>' option.

    BTW, it also looks like an older BIOS Utils is being integrated - CE 2.24 was validated with BIOS Utils 1.00.02, available here:

    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/Bios_Utils/index.html

    Updating to BIOS Utils 1.00.02 should remove that "incompatible" build warning.

    Chris

  • Thanks Chris,

    Warnings got resolved with latest bios_utils, but still it doesn't have utils.a470, FYI..I have selected target as 470 for creation of codec package.

    This log information might be helpful for you I hope.

     

    [root@Heron dec_arm_unitserver_evm3530]# xdc release -PR .
    making release: Tue Feb 23 13:05:29 IST 2010 ...
    ======== .interfaces [.] ========
    making package.mak (because of package.bld) ...
    building for target TMS470 ...
    generating interfaces for package cit.speech.servers.dec_arm_unitserver_evm3530 (because package/package.xdc.inc is older than package.xdc) ...
    .interfaces files complete: Tue Feb 23 13:05:34 IST 2010.
    ======== .libraries [.] ========
    .libraries files complete: Tue Feb 23 13:05:34 IST 2010.
    ======== .dlls [.] ========
    .dlls files complete: Tue Feb 23 13:05:34 IST 2010.
    ======== .executables [.] ========
    configuring dec_arm_unitserver_evm3530.x470 from package/cfg/dec_arm_unitserver_evm3530_x470.cfg ...
    platform   = ti.platforms.evm3530
        will link with ti.bios.utils:lib/utils.a470
    js: "/root/Desktop/gst_CIT/dvsdk_3_00_02_44/xdctools_3_15_01_59/packages/xdc/cfg/Main.xs", line 32: XDC runtime error: can't find the library 'lib/utils.a470' specified by package ti.bios.utils. It wasn't found along the path '/root/Desktop/gst_CIT/dvsdk_3_00_02_44/cs1omap3530_1_00_01/packages;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/xdais_6_24/packages;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/framework_components_2_24/packages;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/framework_components_2_24/fctools/packages;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/bios_5_33_06/packages;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/biosutils_1_02_02/packages;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/linuxutils_2_24_02/packages;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/dsplink_1_61_03/packages;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/dsplink_1_61_03;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/codec_engine_2_24/packages;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/root/Desktop/gst_CIT/dvsdk_3_00_02_44/codec_engine_2_24/cetools/packages;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/ceutils_1.06/packages;/root/Desktop/gst_CIT/dvsdk_3_00_02_44/xdctools_3_15_01_59/packages;../../../..;'.
    gmake[1]: *** [package/cfg/dec_arm_unitserver_evm3530_x470.xdl] Error 1
    gmake[1]: *** Deleting file `package/cfg/dec_arm_unitserver_evm3530_x470.xdl'
    gmake[1]: *** [package/cfg/dec_arm_unitserver_evm3530_x470.xdl] Deleting file `package/cfg/dec_arm_unitserver_evm3530_x470.h'
    gmake[1]: *** [package/cfg/dec_arm_unitserver_evm3530_x470.xdl] Deleting file `package/cfg/dec_arm_unitserver_evm3530_x470.c'
    gmake[1]: *** [package/cfg/dec_arm_unitserver_evm3530_x470.xdl] Deleting file `package/cfg/dec_arm_unitserver_evm3530_x470cfg.cmd'
    gmake[1]: *** [package/cfg/dec_arm_unitserver_evm3530_x470.xdl] Deleting file `package/cfg/dec_arm_unitserver_evm3530_x470cfg_c.c'
    gmake: *** [.,.executables] Error 2

     

    ..Please let me know if you require any further information

     

    Regards,

    Gopi

     

     

     

     

  • Hi chris,

    Any update on availability of lib/utils.a470...

    Can you please provide me information about Creating a DVSDK for library compiled on ARM9e...Actually the above issue I observed when trying to do the same.

     

    Looking forward to your reply

    Regards,

    Gopi

  • Again, I think the target being provided when building your DSP Server (i.e., an _ARM_ target of 470) is incorrect.  This is specified in your config.bld file (should be small - might help posting that, too).  The fundamental problem is that you're [errantly] telling the config tooling that your target is an ARM target.  The BIOS-only BIOS Utils product [correctly] doesn't support ARM (and therefore doesn't provide an ARM library). 

    Some related articles you might also find valuable:


    http://tiexpressdsp.com/index.php/Configuring_Codec_Engine_in_Arm_apps_with_createFromServer#Usage:_Building_DSP_server_.28codec_combo.29_to_enable_createFromServer.28.29_on_the_Arm


    http://tiexpressdsp.com/index.php/Codec_Engine_Server_Integrator_User%27s_Guide


    Chris

  • Thanks for the reply Chris...

    My intention is to run the library that was built for ARM9e, I dont have a DSP library at all. I just want to test my ARM side libray using DVSDK framework and DVTB...

    I have changed the config.bld for same ...Please find the details of config.bld below...

     

    /*
     *  ======== config.bld ========
     * User note: YOU MUST MODIFY THIS FILE TO SPECIFY THE COMPILER TOOL PATHS.
     *
     * Edit this file to specify compiler toolchain paths, and any custom
     * compiler/linker options.
     */

    /* location of your C6000 codegen tools */
    var TMS470 = xdc.useModule('ti.targets.TMS470');

    /* location of your CG tools */
    TMS470.rootDir="/root/Desktop/gst_CIT/dvsdk_3_00_02_44/TMS470CGT4.6.2";
    TMS470.platform = "ti.platforms.evm3530";

    /*
     *  ======== Build.targets ========
     * list of targets (ISAs + compilers) to build for
     */
    Build.targets = [
        TMS470,
    ];

    I hope this may be clear for you now, what I was trying to do...

     

    Waiting for your reply...

    Regards,

    Gopi

     

  • Ok, a few things:

       * If your CE application (the code calling CE/VISA APIs) is on the same processor as your codecs, you don't need a Server.  Servers are only necessary to 'serve up' codecs to apps on other processors.  If the codec is on the same processor, you should just build an app with 'local' codecs.  Look for examples in CE's examples/ti/sdo/ce/examples/apps/*/local.cfg for config scripts.

          * In those config scripts, you won't find any references to ti.bios.utils.  The ti.bios.utils package is only used for Servers running BIOS.  There are no Servers if all the codecs are 'local'.  Again, I think you're starting from a 'Server' config script rather than an 'app local' config script.

       * For the particular 'target' you're using (ti.targets.TMS470), I don't think we have Codec Engine libraries for you.  The only ARM-side Codec Engine libraries we provide for the OMAP3 platform are based on Linux (or WinCE).  If you're using Linux, you should use the gnu.targets.arm.GCArmv5T target - again, you can refer to the examples in CE and their 'local.cfg' Linux-based builds.

    I'm still not sure we're answering your question or use case, though.  Do you want to create an ARM-side codec that will be linked into a Linux application and invoked using Codec Engine APIs?  If so, you shouldn't use the TI ARM toolchain, but rather the same gcc toolchain you'll be building your ARM-side app with.  Again, the CE 'local' examples are a good place to start.

    Chris

  • Thank Chris, Thanks a lot for your support and response which was more useful for me and I could able to finally resolve and my sort out my issues based on the Codec Engine examples....

     

    Regards,

    Gopi