• Resolved

[OMAPL138] Hello DSPLink Program


I am looking for most basic examples on DSPLink specially for OMAPL138

(Hawkboard) For both Linux/Arm Side & DSP Side.


Examples specially what a DSP books teaches,Like convolution ,cross correlation ,FFT etc

even much simple apps like multiply a location of shared area by contanst by DSP etc will too suffice.

Sample programs in the DVSDK is too complex to be understood by students/new to 



Any help on this program,API documentation for Linux to Use dsplinkk.ko etc 

would be greatly appreciated.





  • In reply to tlee:

    This example uses OMAPL137 SDK and EVM sample codes.  Can OMAPL138 use the codes directly?  


  • In reply to Kevin43482:


    I'm not 100% sure, but I think the code is at a high enough level to where it abstracts the board-layer differences if you compile using the L138 environment.


  • In reply to tlee:

    Hi Kevin, Tommy,

    The Hello DSP example uses the OMAP-L137 BSL, so it needs adaptation to work with L138.

    For a DSPLink example for L138, please see:


    Or you can use any of the DSPLink examples inside the DSPLink installation that does not touch the hardware in the DSP side.

    - Mariana


    Please click the Verify Answer button on this post if it answers your question.

  • In reply to Mariana:



    I'm going to try the hello DSP example on Omap-L138, is there a BSL available for Linux?




  • In reply to clliu:

    Hi clliu,

    Not sure if I understand.

    1) As  I mentioned before in this post, it would be better to start from the AudioSoc example if you are using OMAP-L138.

    2) The hello DSP example uses the OMAP-L137/C6747 BSL. This BSL is provided by spectrum digital that is the board manufacturer. The BSL is not for Linux, but it runs in the DSP core. The hello DSP example runs part of the code in the DSP core and that is why it uses the BSL as part of it.

    3) There is a BSL for OMAP-L138/C6748 from the Logic PD, the manufacturer of the board for OMAP-L138 that has some test codes, but the hello DSP example does not detail how to integrate Logic's code. For the BSL, go to LogicPD's web site. Click on the Kit Contents tab, at the bottom of the page click at: TMS320C6748 SOM-M1 GEL, CCS Setup, & BSL Files - you will need to create an account in their website if you do not have one already and download the files

    - Mariana


    Please click the Verify Answer button on this post if it answers your question.

  • In reply to Mariana:

    Hi Mariana,


    I've successfully compiled the helloDSP DSP side example to L138, here is what I did:

    1, Downloaded and unzipped the BSL package to /home/user/OMAP-L138_X_X_X_X/boards and changed the folder name to ./evmomapl138_v1 and the lib name to evmomapl138bsl.lib(btw, the proper way to do it is to modify the corresponding contents in Makefile and other project files).

    2, Modified the Makefile and project source files accordingly.

    3, Commented out  led_test() in tskMessage.c(I don't need to try it and will replace it with my one later).

    4, Changed all the SDRAMs in helloDSP.tcf to DDR.

    5, Changed SDRAM in helloDSP.cmd to DDR.

     It needed a few iterations to figured out what to modify.

     Then it's done.

    But I have two questions:

    1, Each time make clean  is run, the helloDSPcfg.h is deleted, and following make command will complain it can't find that file, so I have to either comment out the line '@rm -f *cfg.*' in Makefile or back up it somewhere and copy it back before make. It sounds like L137 compilation tools generate this file automatically during make every time and L138's doesn't. Is it true?

    2, The original content in helloDSP.cmd is:

      .data:DSPLINK_shmBaseAddress: fill=0xC3F05000 {} > SDRAM

    Now i've changed SDARM to DDR, should I change 0xC3F05000 to some other value that is specific to L138 EVM?

    That's the reason that although it can be compiled successfully,  I haven't physically run it on the board yet.





  • In reply to clliu:

    Hi Everyone,

    After last post, tried to run helloDSP example, met problem even before  touching the executible, stuck on loading the dsplinkk.ko, got error message:

    insmod: error inserting 'dsplinkk.ko': -1 Invalid module format

    I knew it's because of the mismatch of the vermagic of dsplinkk.ko and kernel running on the experimentor board, tried to compile new dsplinkk.ko, met some problems, tried to solve these problems, then met even more problems, more and more problems coming to me. I am new to embedded linux, it takes time to make things running smoothly, but my project won't wait for me, and I'm just going to do some evaluation, so can any one provide a dsplinkk.ko that can run on my board?


    I'm using the experimentor kit from logicPD, its kernel info is:

     root@arago:/media/ram# uname -a
    Linux arago 2.6.31-rc7-davinci1-06298-g9f9abac #1 PREEMPT Thu Sep 17 17:49:44 IST 2009 arm



  • In reply to clliu:

    Ok, finally got dsplinkk.ko recompiled, base on the correct linux kernel, which is in DaVinci-PSP-SDK-

    Transferred 3 files to the board, dsplinkk.ko, helloDSP.out and helloDSPgpp, the the module loading is successful, the program running is failed.

    If adding +x to both  helloDSP.out and helloDSPgpp, stuck here:

    root@arago:/media/ram# ./helloDSPgpp helloDSP.out 2
    ========== Sample Application : helloDSP ==========
    Entered helloDSP_Create ()

    if  adding +x to  helloDSPgpp only, stuck here:

     root@arago:/media/ram# ./helloDSPgpp helloDSP.out 2




  • In reply to clliu:


    This looks like PROC_start API is waiting on a handshake. This can happen if the memory map on ARM and DSP side is different. Can you check if the memory map is same. Check if this link helps: http://processors.wiki.ti.com/index.php/Troubleshooting_DSPLink_configuration_issues#Problem:_PROC_start_failed_with_configuration_mismatch.2Ffailure