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.

OMAP-L137 and DSPLink

Other Parts Discussed in Thread: CCSTUDIO, OMAP3530

Could use some guidance with regards to integrating DSPLink into an application on the DSP side of the OMAP.  I'm using Code Composer on a Windows system and everything is the latest (not what was just released today).

I downloaded DSPLink 1.61.03 and installed it but the documentation is a bit obscure.  Attempted to run perl scripts for build but did not list OMAP as a platform option.  Looked at building helloDSP from wiki but everything seems to be for a Linux environment.  I have an existing DSP project building fine in Code Composer and was hoping there was just a library to load as I'm using DSP/BIOS and some parameters to set but looking alot more involved.  May or may not use Linux on the ARM side, I ported FreeRTOS to the ARM side and may port DSPLink to it once get it setup on DSP side.

Referencing the UserGuide I ran & modified the environment batch file, which appears correct:

C:\CCStudio_v3.3_OMAP\dsplink_sla_1_61_03>dsplink\etc\host\scripts\msdos\dsplinkenv
===========================================================
The environment for DSP/BIOS LINK development has been set:
DSPLINK  = C:\CCStudio_v3.3_OMAP\dsplink_sla_1_61_03\dsplink
PATH    += C:\CCStudio_v3.3_OMAP\dsplink_sla_1_61_03\dsplink\etc\host\scripts\msdos

When I run the perl script get:

C:\CCStudio_v3.3_OMAP\dsplink_sla_1_61_03>perl dsplink\config\bin\dsplinkcfg.pl

  Welcome to DSP/BIOS(TM) Link Configuration Utility
------------------------------------------------------

  !!DSPLINK will be configured for Build OS: WINDOWS!!

  !!DSPLINK Directory : C:\CCStudio_v3.3_OMAP\dsplink_sla_1_61_03\dsplink!!

=========================================================
Chosen configuration is as follows:

****************** ERROR !!! ***************************
Please provide a valid Platform!
Following platform are supported currently:
ID-->JACINTO1
        Jacinto SoC version 1 - C64P DSP interfaced directly to ARM9
        This platform can connect to a DM6437 device via VLYNQ
ID-->JACINTO2
        Jacinto SoC Version 2 - C64P DSP interfaced directly to ARM9
        This platform does not support multi DSP scenario
Provided:
Example: --platform=DAVINCI or --platform=<ID> or --help for all options

--------------------------------------------------------------------------------------------------------------------

No OMAPL137 platforms listed.

Anyone been down this road before?  Figure I probably just need a push in the right direction.

Thanks,

Kev

 

  • I used the following options to build on the Linux side; have not tried this on the Windows side

       --platform=OMAPL1XX --nodsp=1 --dspcfg_0=OMAPL1XXGEMSHMEM --dspos_0=DSPBIOS5XX --gppos=MVL5G --comps=ponslrmc

  • Not sure, but there might be some hints of what to use here:

    http://tiexpressdsp.com/index.php?title=Codec_Engine_Link_Config

    Chris

  • Kev,

    There will be 2 tar  files present in the 1.61.03 dsplink release namely dsplink_sla_1_61_03.tar.gz ( SLA version used for DRA44x,DRX40X platforms) and dsplink_1_61_03.tar.gz (GPL version used for DM644x,OMAPL137,DM6467,OMAP3530,OMAP2530 etc).

    From your logs I see that you are using a sla version which will not have the support for OMAPL137 in the Perl file

    Can you try compiling with other package dsplink_1_61_03.tar.gz ?

    Let me know if you have still more concerns

    Regards

    Som

     

  • Som,

    Thanks, that got me further.  I ran the perl scripts with the options Juan suggested.  Now looks like possible makefile issue (supposedly gmake can be used instead of GNU make). 

    C:\CCStudio_v3.3_OMAP\dsplink_1_61_03\dsplink\dsp\src>gmake -s debug

    [SRC                 ] ======= DIRS ================== INCLUDE ============

    [BASE                ] ======= DIRS ================== INCLUDE ============
    [GEN                 ] ------- DIRS ------------------ INCLUDE ------------
    C:perl\bin\perl: not found
    gmake[2]: *** [C:\CCStudio_v3.3_OMAP\dsplink_1_61_03\dsplink\dsp\\export\\INCLUDE] Error 127
    gmake[1]: *** [gen.dirinc] Error 2
    gmake: *** [base.dirinc] Error 2

    Looking at the 'perl' not found there is a backslash missing on the C: given perl is there.  I set an environment variable BASE_PERL to C:\perl as in systools.mk but didn't matter so must be referencing something else.  I'll dig around the build files and see if I can find something, so far no luck.  Have a feeling I'm headed to VMWare/Linux sooner than wanted to ;-)...

    Kev

     

  • Gt a bit further with the below link and building on PC (section on building DSP binaries):

    http://wiki.davincidsp.com/index.php/How_to_build_an_ARM/DSP_Hello_World_program_on_the_DaVinci_EVM

    Now looks like most DSPLink examples starting to build except those referencing hal_cache.h.  Not sure what to update to give it the proper path as seems like something missing?  My config is run using below:

    dsplinkcfg --platform=OMAPL1XX --nodsp=1 --dspcfg_0=OMAPL1XXGEMSHMEM --dspos_0=DSPBIOS5XX --gppos=MVL5G --comps=ponslrmc

    My guess is have include to following directory:

    C:\dvevm_1_20\dsplink-1_61_03-prebuilt\packages\dsplink\dsp\export\INCLUDE\DspBios\OMAPL1XX

    But missing lower level 'internal' subdirectory reference where 'hal_cache.h' is located.  Just not sure yet what to modify to add it.

     When run 'gmake -s release' get:

    [SAMPLES             ] ======= INCLUDES ===================================
    [LOOP                ] ------- INCLUDES -----------------------------------
    [LOOP                ] ------- DIRS ------------------ INCLUDE ------------
    [SCALE               ] ------- INCLUDES -----------------------------------
    [SCALE               ] ------- DIRS ------------------ INCLUDE ------------
    [MESSAGE             ] ------- INCLUDES -----------------------------------
    [MESSAGE             ] ------- DIRS ------------------ INCLUDE ------------
    [RDWR                ] ------- INCLUDES -----------------------------------
    [RDWR                ] ------- DIRS ------------------ INCLUDE ------------
    [MESSAGE_MULTI       ] ------- INCLUDES -----------------------------------
    [MESSAGE_MULTI       ] ------- DIRS ------------------ INCLUDE ------------
    [RING_IO             ] ------- INCLUDES -----------------------------------
    [RING_IO             ] ------- DIRS ------------------ INCLUDE ------------
    [MP_LIST             ] ------- INCLUDES -----------------------------------
    [MP_LIST             ] ------- DIRS ------------------ INCLUDE ------------
    [MPCSXFER            ] ------- INCLUDES -----------------------------------
    [MPCSXFER            ] ------- DIRS ------------------ INCLUDE ------------

    [SAMPLES             ] ======= OBJECTS =============== RELEASE ============
    [LOOP                ] ------- DIRS ------------------ RELEASE ------------
    [LOOP                ] ------- OBJECT ---------------- RELEASE ------------
    Compiling main.c...
    Compiling loop_config.c...
    Compiling tskLoop.c...
    Compiling swiLoop.c...
    Generating DSP/BIOS configuration files ...
    Compiling loopcfg_c.c...
    Compiling loopcfg.s62...
    [SCALE               ] ------- DIRS ------------------ RELEASE ------------
    [SCALE               ] ------- OBJECT ---------------- RELEASE ------------
    Compiling main.c...
    Compiling scale_config.c...
    Compiling tskScale.c...
    Compiling swiScale.c...
    Generating DSP/BIOS configuration files ...
    Compiling scalecfg_c.c...
    Compiling scalecfg.s62...
    [MESSAGE             ] ------- DIRS ------------------ RELEASE ------------
    [MESSAGE             ] ------- OBJECT ---------------- RELEASE ------------
    Compiling main.c...
    Compiling message_config.c...
    Compiling tskMessage.c...
    Compiling swiMessage.c...
    Generating DSP/BIOS configuration files ...
    Compiling messagecfg_c.c...
    Compiling messagecfg.s62...
    [RDWR                ] ------- DIRS ------------------ RELEASE ------------
    [RDWR                ] ------- OBJECT ---------------- RELEASE ------------
    Compiling main.c...
    Compiling tskReadwrite.c...
    "tskReadwrite.c", line 37: fatal error #5: could not open source file
              "hal_cache.h"
      #include <hal_cache.h>
                            ^

    1 fatal error detected in the compilation of "tskReadwrite.c".
    Compilation terminated.

    >> Compilation failure
    gmake[2]: *** [tskReadwrite.c.rel] Error 1
    gmake[1]: *** [objrel] Error 512
    gmake: *** [readwrite.objrel] Error 2

     

  • Got a bit farther, seems the build environment for windows is a bit messed up, some information missing and paths wrong.  In order to have it include the 'internal' subdirectory modified the C6X_C_DIR environment variable:

    Batch file now:

    set DSPMAKE_Makefile=Makefile

    set DSPLINK=C:\dvevm_1_20\dsplink-1_61_03-prebuilt\packages\dsplink

    set PATH=C:\Perl\bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Mingw\bin

    set C6X_C_DIR=.;C:\dvevm_1_20\dsplink-1_61_03-prebuilt\packages\dsplink\dsp\export\INCLUDE\DspBios\OMAPL1XX\internal;%C6X_C_DIR%

    Thus all compiles now but linker has bogus path to library files or they were not copied there.  Path be:

    C:\dvevm_1_20\dsplink-1_61_03-prebuilt\packages\dsplink\dsp\export\BIN\DspBios\OMAPL1XX\OMAPL1XXGEM_0\RELEASE

    but scripts are making it:

    C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OMAPL1XXGEM_0\\EXPORT\\RELEASE

    Possibly they are supposed to be copied by the script?

     

     

    [MPCSXFER            ] ------- DIRS ------------------ RELEASE ------------
    [MPCSXFER            ] ------- OBJECT ---------------- RELEASE ------------
    Compiling main.c...
    Compiling mpcsxfer_config.c...
    Compiling tskMpcsXfer.c...
    Generating DSP/BIOS configuration files ...
    Compiling mpcsxfercfg_c.c...
    Compiling mpcsxfercfg.s62...

     

    [SAMPLES             ] ======= TARGETS =============== RELEASE ============
    [MESSAGE             ] ------- TARGET ---------------- RELEASE ------------
    Generating message.out...
    <Linking>
    error: cannot find file
       "C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OM
       APL1XXGEM_0\\EXPORT\\RELEASE\\dsplink.lib"
    "C:\DOCUME~1\Kevin\LOCALS~1\Temp\039723", line 17: error: cannot find file
       "C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OM
       APL1XXGEM_0\\EXPORT\\RELEASE\\dsplinkpool.lib"
    "C:\DOCUME~1\Kevin\LOCALS~1\Temp\039723", line 18: error: cannot find file
       "C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OM
       APL1XXGEM_0\\EXPORT\\RELEASE\\dsplinkmpcs.lib"
    "C:\DOCUME~1\Kevin\LOCALS~1\Temp\039723", line 19: error: cannot find file
       "C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OM
       APL1XXGEM_0\\EXPORT\\RELEASE\\dsplinkmplist.lib"
    "C:\DOCUME~1\Kevin\LOCALS~1\Temp\039723", line 20: error: cannot find file
       "C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OM
       APL1XXGEM_0\\EXPORT\\RELEASE\\dsplinkmsg.lib"
    "C:\DOCUME~1\Kevin\LOCALS~1\Temp\039723", line 21: error: cannot find file
       "C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OM
       APL1XXGEM_0\\EXPORT\\RELEASE\\dsplinknotify.lib"
    "C:\DOCUME~1\Kevin\LOCALS~1\Temp\039723", line 22: error: cannot find file
       "C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OM
       APL1XXGEM_0\\EXPORT\\RELEASE\\dsplinkringio.lib"

     undefined     first referenced

      symbol           in file

     ---------     ----------------

     _DSPLINK_init C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OMAPL1XXGEM_0\\MES
    j
     _SMAPOOL_FXNS C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OMAPL1XXGEM_0\\MES
    _config.obj
     _SMAPOOL_init C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OMAPL1XXGEM_0\\MES
    _config.obj
     _ZCPYMQT_FXNS C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OMAPL1XXGEM_0\\MES
    _config.obj
     _ZCPYMQT_init C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OMAPL1XXGEM_0\\MES
    _config.obj

    error: unresolved symbols remain
    error: errors encountered during linking;
       "C:\\dvevm_1_20\\dsplink-1_61_03-prebuilt\\packages\\dsplink\\dsp\\BUILD\\OM
       APL1XXGEM_0\\MESSAGE\\BIN\\RELEASE\\message.out" not built

    >> Compilation failure
    gmake[2]: *** [message.out.rel] Error 1
    gmake[1]: *** [trgrel] Error 2
    gmake: *** [message.trgrel] Error 2

  • Got it working, documented and posted on another thread:

    http://e2e.ti.com/forums/p/6994/26997.aspx#26997

    Kev

     

  • Kev's latest docs are more up to date. 

    But I did post some learning curve work "as is" that might help people new to OMAP-L1 Linux (or even DaVinci DM6446 where I learned it).  It goes through various things done by a WinXP and CCS person learning Linux and Montavista:

    http://tiexpressdsp.com/index.php/Linux_by_Degrees

    Enjoy!