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.

Rebuilding the slave DSP (C6748 on omapl138) executable for syslink samples.

Other Parts Discussed in Thread: OMAPL138, SYSBIOS

Hi:

I am following the steps in the document Creating CCS Project for SysLink samples (MessageQ) to rebuild the slave DSP executable. I am having a problem at the very last step when I try to actuall build the executable. I am getting the two errors below, both in the file SysLinkSamples_common.cfg.xs. Both the errors are related to the 'SharedRegion.' It appears that neither SR0 nor SR1 are defined in SysLinkSamples_common.cfg.xs. This is an internally generated file.

Could you please tell me how to resolve these issues.

Thanks a lot!

Cheers,

Mushtaq

**** Build of configuration Debug for project messageQ ****

C:\ti\ccsv5\utils\bin\gmake -k all

'Building file: ../MessageQ_omapl1xx_dsp.cfg'

'Invoking: XDCtools'

"C:/ti/xdctools_3_22_04_46/xs" --xdcpath="C:/ti/bios_6_32_05_54/packages;C:/omapl138/syslink/syslink_2_10_05_26/packages;C:/ti/ipc_1_23_05_40/packages;" xdc.tools.configuro -o configPkg -t ti.targets.C674 -p ti.sdo.ipc.examples.platforms.evmOMAPL138.dsp -r debug -c "C:/ti/ccsv5/tools/compiler/c6000" --compileOptions "-g --optimize_with_debug" "../MessageQ_omapl1xx_dsp.cfg"

making package.mak (because of package.bld) ...

generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...

configuring MessageQ_omapl1xx_dsp.x674 from package/cfg/MessageQ_omapl1xx_dsp_p674.cfg ...

js: "C:/Documents and Settings/msyed/workspace_syslink_pjt/messageQ/SysLinkSamples_common.cfg.xs", line 91: TypeError: Cannot read property "base" from undefined

"C:/Documents and Settings/msyed/workspace_syslink_pjt/messageQ/MessageApp_common.cfg.xs", line 63

"C:/Documents and Settings/msyed/workspace_syslink_pjt/messageQ/MessageQ_omapl1xx_dsp.cfg", line 57

"./package/cfg/MessageQ_omapl1xx_dsp_p674.cfg", line 196

"./package/cfg/MessageQ_omapl1xx_dsp_p674.cfg", line 275

"./package/cfg/MessageQ_omapl1xx_dsp_p674.cfg", line 183

gmake.exe: *** [package/cfg/MessageQ_omapl1xx_dsp_p674.xdl] Error 1

js: "C:/ti/xdctools_3_22_04_46/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.The 'Problems' window gives the following two messages:

(1) Cannot read property "base" from undefined. It is referring to line 91 (in SysLinkSamples_common.cfg.xs)

var SHAREDREG_0_MEM = sr0MemSection.base;

(2) Cannot read property "base" from undefined. It is referring to line 51 (in SysLinkSamples_common.cfg.xs)

var BIOS = xdc.useModule('ti.sysbios.BIOS');

  • Mushtaq,

    In the configuro step you are executing, the platform does not look correct:

    "C:/ti/xdctools_3_22_04_46/xs" --xdcpath="C:/ti/bios_6_32_05_54/packages;C:/omapl138/syslink/syslink_2_10_05_26/packages;C:/ti/ipc_1_23_05_40/packages;" xdc.tools.configuro -o configPkg -t ti.targets.C674 -p ti.sdo.ipc.examples.platforms.evmOMAPL138.dsp -r debug -c "C:/ti/ccsv5/tools/compiler/c6000" --compileOptions "-g --optimize_with_debug" "../MessageQ_omapl1xx_dsp.cfg"

    You could try unzipping the MessageQ example in syslink_2_10_05_26/examples/archive/ti_platforms_evmOMAPL138_coff_linux and looking at the configuro command in dsp/makefile:

        $(XDC_INSTALL_DIR)/xs --xdcpath="$(subst +,;,$(PKGPATH))" \
                xdc.tools.configuro -o configuro \
                -t ti.targets.C674 -c $(CGT_C674_INSTALL_DIR) \
                -p ti.platforms.evmOMAPL138:dsp -b ../shared/config.bld \
                -r release Dsp.cfg

    You will see this platform in shared/config.bld, and it has SR0 and SR1 memory regions that are not present in the platform that you are using.

    Best regards,

        Janet

  • Hi Janet:

    Thanks a lot!

    I did check the example in syslink_2_10_05_26/examples/archive/ti_platforms_evmOMAPL138_coff_linux and the configuro command in dsp/makefile.

    The problem I am having is that the platform ti.platforms.evmOMAPL138:dsp does not appear in the choices that have.

    I see ti.platforms.evmOMAPL138. I added 'dsp' to the end and tried building.

    Obviously, it couldn't not find the platform (please see below.)

    What am I missing? Am I using the correct packages?  Could you please help?

    Thanks a lot!

    Cheers,

    Mushtaq

    **** Build of configuration Debug for project messageQ ****

    C:\ti\ccsv5\utils\bin\gmake -k all

    'Building file: ../MessageQ_omapl1xx_dsp.cfg'

    'Invoking: XDCtools'

    "C:/ti/xdctools_3_22_04_46/xs" --xdcpath="C:/ti/bios_6_32_05_54/packages;C:/omapl138/syslink/syslink_2_10_05_26/packages;C:/ti/ipc_1_23_05_40/packages;" xdc.tools.configuro -o configPkg -t ti.targets.C674 -p ti.platforms.evmOMAPL138.dsp -r release -c "C:/ti/ccsv5/tools/compiler/c6000" --compileOptions "-g --optimize_with_debug" "../MessageQ_omapl1xx_dsp.cfg"

    js: "C:/ti/xdctools_3_22_04_46/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: Error: Can't find platform package ti.platforms.evmOMAPL138.dsp

    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

     

  • Hi Janet:

    Please ignore my previous reply. I entered the platform as ti.platforms.evmOMAPL138.dsp instead of ti.platforms.evmOMAPL138:dsp.

    I corrected that; however, I am still getting the same error (Please see below.).

    Also, in your reply I am observing the -b option '-b ../shared/config.bld' and the -r option '-r release Dsp.cfg'

    How did you get these?

    Furthermore, in shared/config.bld we don't have SR0 and SR1. We actually have SR_0 and SR_1.

    Could you please help?

    Thanks a lot!

    Cheers,

    Mushtaq

     

    **** Build of configuration Debug for project messageQ ****

    C:\ti\ccsv5\utils\bin\gmake -k all

    'Building file: ../MessageQ_omapl1xx_dsp.cfg'

    'Invoking: XDCtools'

    "C:/ti/xdctools_3_22_04_46/xs" --xdcpath="C:/ti/bios_6_32_05_54/packages;C:/omapl138/syslink/syslink_2_10_05_26/packages;C:/ti/ipc_1_23_05_40/packages;" xdc.tools.configuro -o configPkg -t ti.targets.C674 -p ti.platforms.evmOMAPL138:dsp -r debug -c "C:/ti/ccsv5/tools/compiler/c6000" --compileOptions "-g --optimize_with_debug" "../MessageQ_omapl1xx_dsp.cfg"

    making package.mak (because of package.bld) ...

    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...

    configuring MessageQ_omapl1xx_dsp.x674 from package/cfg/MessageQ_omapl1xx_dsp_p674.cfg ...

    js: "C:/Documents and Settings/msyed/workspace_syslink_pjt/messageQ/SysLinkSamples_common.cfg.xs", line 91: TypeError: Cannot read property "base" from undefined

    "C:/Documents and Settings/msyed/workspace_syslink_pjt/messageQ/MessageApp_common.cfg.xs", line 63

    "C:/Documents and Settings/msyed/workspace_syslink_pjt/messageQ/MessageQ_omapl1xx_dsp.cfg", line 57

    "./package/cfg/MessageQ_omapl1xx_dsp_p674.cfg", line 196

    "./package/cfg/MessageQ_omapl1xx_dsp_p674.cfg", line 275

    "./package/cfg/MessageQ_omapl1xx_dsp_p674.cfg", line 183

    gmake.exe: *** [package/cfg/MessageQ_omapl1xx_dsp_p674.xdl] Error 1

    js: "C:/ti/xdctools_3_22_04_46/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

     

  • Mushtaq,

    It looks like the right config.bld with the SR0 and SR1 memory sections is still not included in the configuro step.  Here is how you can add it to your project:

    1. Right-click on the project and select "Build Options..."

    2. Under Build -> XDCTools, select "Advanced Options".  There you will see "Build configuration file (-b)", and you can browse to the config.bld file for the example.

    You can always change the names of SR_0 and SR_1 in the config.bld to match the names in your .cfg file.  I would copy the config.bld file before changing it, so that the original example will not be broken.

    Best regards,

        Janet

  • I'm having the same problem as Mushtaq for the OMAPL138.  I tried the kludge Janet suggested-- using (-b) the config.bld from the messageq example-- but it didn't help. I also tried creating my own platform with sections SR0 and SR1, but that didn't help either.

    Can you explain to me how, in the samples, the memory map is set up?

    Thanks

  • Elron,

    When you say you used the -b to specify the config.bld to use, but it didn't work, what was the error?  The config.bld in the ex02_messageq example creates a platform instance, named ti.platforms.evmOMAPL138:dsp. This platform inherits all the properties and memory map of ti.platforms.evmOMAPL138, and adds three new memory regions, "SR_0" and "SR_1", used for communication between the Arm and the DSP., and "DSP_PROG".  (I expanded the variables in the config.bld, so hopefully it will be clearer).


    Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = {
        externalMemoryMap: [
            [ "SR_0",  {
                 name: "SR_0", space: "data", access: "RWX",
                 base: 0xC2000000, len: 0x10000,                                <---- base and length of the memory segment
                 comment: "SR#0 Memory (64 KB)"
            } ],
            [ "SR_1", name: "SR_1", space: "data", access: "RWX",
            base: 0xC2010000, len: 0x20000,
            comment: "SR#1 Memory (128 KB)" ],
            [ "DSP_PROG", {
                name: "DSP_PROG", space: "code/data", access: "RWX",
                base: 0xC3000000, len: 0x800000,
                comment: "DSP Program Memory (8 MB)"
            }]
        ],
        codeMemory:  "DSP_PROG",
        dataMemory:  "DSP_PROG",
        stackMemory: "DSP_PROG",
        l1DMode: "32k",
        l1PMode: "32k",
        l2Mode: "32k"
    };


    The sizes of L1P, L1D, and L2 cache are also explicitly set here.  Note also, that a chunk of external memory (0xC300 0000 - 0xC380 0000) is also defined for code, data and stack placement.

    By using the -b option to specify this config.bld, you will be getting the memory map specified here.

    Best regards,

        Janet

  • When you say you used the -b to specify the config.bld to use, but it didn't work, what was the error?

    Sorry, nevermind-- my change to the platform string in the RTSC settings didn't stick after I OK'd the properties dialog.

    The config.bld in the ex02_messageq example creates a platform instance, named ti.platforms.evmOMAPL138:dsp...

    What I meant to ask was at what point do the Program object's memory map fields get filled in from the platform object?

    Thanks again

  • The memory map is used in the configuration step.  If you look at the project properties in CCS, under Build -> XDCTools, you will see the command "${XDC_CG_ROOT}/xs".  This command takes in the config.bld, platform name, and other arguments, and outputs a .c file and linker command file (among others), that go into the build.  The generated linker command file will contain the memory map information.

    Best regards,

        Janet

  • Hi Janet:

    Thanks a lot!

    Your instructions helped get the DSP side code built correctly.

    My concern is that I have not been able to find any documentation for what all you told me! How did you figure it out?

    Now I am trying to build the ARM side code and I am referring back to http://processors.wiki.ti.com/index.php/Creating_CCS_Project_for_SysLink_samples; however, the instructions there are for building the ARM side code using CCS installed under Linux.

    My CCS is installed under Windows. Is there any document that explains how to build the ARM side code using CCS installed under Windows?

    Could you please help?

    Thanks a lot!

    Cheers,

    Mushtaq