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.

Running inter processor communication from within Linux

Other Parts Discussed in Thread: OMAPL138

Hi, I have programs compiled to run in linux on the OMAPL138 LCDK. I want the output of these programs (which are saved to a file) to be passed to the DSP to process them and return the computed result. How do I do this?

  • Any help on this issue?
  • Hi Usman,

    SYSlink is available for OMAPL138 to establish a communication between ARM and DSP.

    Please have a look at the below TI WIKI links.

    ---

  • Thanks for your reply. I have installed syslink onto my Linux host and onto the board. How do I use it to send information to the DSP from the ARM while booted into Linux? I am using syslink 2.2.1.01.05.

  • So I went ahead and extracted the syslink examples like the guide shows. But the examples wouldn't install on their own like in the guide, so I opened the products.mak file for the hello world example in this location ~/ti/syslink_2_21_01_05/examples/archive/OMAPL138_linux_elf/ex01_helloworld$

    and I setup the products.mak file as such:

    DEPOT = /home/logic

    BIOS_INSTALL_DIR = $(DEPOT)/ti/bios_6_33_02_31
    CGT_ARM_PREFIX = $(DEPOT)/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR = $(DEPOT)/ti/ipc_1_25_03_15
    SYSLINK_INSTALL_DIR = $(DEPOT)/ti/syslink_2_21_01_05
    CGT_C674_ELF_INSTALL_DIR= $(DEPOT)/ti/TI_CGT_C6000_7.3.3
    XDC_INSTALL_DIR = $(DEPOT)/ti/xdctools_3_23_01_43

    Now when I run the "make install" command I get the following error:

    logic@logic-desktop:~/ti/syslink_2_21_01_05/examples/archive/OMAPL138_linux_elf/ex01_helloworld$ make install
    #
    # Making install ...
    install run.sh /home/logic/ti/syslink_2_21_01_05/examples/archive/OMAPL138_linux_elf/ex01_helloworld/install/ex01_helloworld/debug
    cp /home/logic/ti/syslink_2_21_01_05/packages/ti/syslink/bin/OMAPL1XX/samples/slaveloader_debug /home/logic/ti/syslink_2_21_01_05/examples/archive/OMAPL138_linux_elf/ex01_helloworld/install/ex01_helloworld/debug/slaveloader
    install run.sh /home/logic/ti/syslink_2_21_01_05/examples/archive/OMAPL138_linux_elf/ex01_helloworld/install/ex01_helloworld/release
    cp /home/logic/ti/syslink_2_21_01_05/packages/ti/syslink/bin/OMAPL1XX/samples/slaveloader_release /home/logic/ti/syslink_2_21_01_05/examples/archive/OMAPL138_linux_elf/ex01_helloworld/install/ex01_helloworld/release/slaveloader
    make -C host EXEC_DIR=/home/logic/ti/syslink_2_21_01_05/examples/archive/OMAPL138_linux_elf/ex01_helloworld/install/ex01_helloworld install
    make[1]: Entering directory `/home/logic/ti/syslink_2_21_01_05/examples/archive/OMAPL138_linux_elf/ex01_helloworld/host'
    #
    # Making install ...
    cp bin/debug/app_host /home/logic/ti/syslink_2_21_01_05/examples/archive/OMAPL138_linux_elf/ex01_helloworld/install/ex01_helloworld/debug
    cp: cannot stat `bin/debug/app_host': No such file or directory
    make[1]: *** [install] Error 1
    make[1]: Leaving directory `/home/logic/ti/syslink_2_21_01_05/examples/archive/OMAPL138_linux_elf/ex01_helloworld/host'
    make: *** [install] Error 2
    logic@logic-desktop:~/ti/syslink_2_21_01_05/examples/archive/OMAPL138_linux_elf/ex01_helloworld$ 

    How do I fix this, along with my previous question?

  • Hi Usman,

    In the below link, it says, sample examples are given in the syslink . To build those samples and install, they used commands like "make samples" and host $ make install or host $ make install EXEC_DIR=<your ARMv5 file system location>

    Please try those first which may give some idea.

    ---



  • Yes, I am already passed this step. The "make samples" or "make examples" command just puts a bunch of zip files into an example folder. In my previous post I extracted the first folder and came across those errors when trying to build it.

  • I ran the command "install syslink", I put the output folder onto the board and did insmod on the syslink.ko file successfully.

    I compiled the ex01_helloworld example for both host and dsp, I put those files onto the board.

    I can run the ARM executable and it provides these errors:

    root@omapl138-lcdk:~/ex01_helloworld/host/bin/release# ./app_host DSP
    + ./app_host DSP
    *** Loader_getSymbolAddress: Failed to get the symbol address!
            Error [0x8485f003] at Line no: 414 in file /home/logic/ti/syslink_2_21_01_05/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/procMgr/common/Loader.c
    *** ProcMgr_getSymbolAddress: Failed to get symbol address!
            Error [0x8485f003] at Line no: 2190 in file /home/logic/ti/syslink_2_21_01_05/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/procMgr/common/ProcMgr.c
    *** Platform_loadCallback: ProcMgr_getSymbolAddress failed
            Error [0xffffffff] at Line no: 1904 in file /home/logic/ti/syslink_2_21_01_05/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/omapl1xx/Platform.c
    *** Ipc_control: Platform_loadCallback failed!
            Error [0xffffffff] at Line no: 828 in file /home/logic/ti/syslink_2_21_01_05/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/ipc/hlos/knl/Ipc.c
    

    But how do I run the DSP portion? 

    I tried to run the run.sh file, this is the output:

    root@omapl138-lcdk:~/ex01_helloworld# ./run.sh
    + ./run.sh
    + ./slaveloader startup DSP server_dsp.xe674
    ./run.sh: line 35: ./slaveloader: No such file or directory
    + ./app_host DSP
    ./run.sh: line 37: ./app_host: No such file or directory
    + ./slaveloader shutdown DSP
    ./run.sh: line 39: ./slaveloader: No such file or directory
    root@omapl138-lcdk:~/ex01_helloworld#
    

  • Hi,

    How did you boot your board (target) ?

    Could you please attach the complete boot up log your board.

    Please make sure that you have used proper u-boot boot arguments.

    setenv bootargs 'console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait ip=off mem=32M@0xc0000000 mem=64M@0xc4000000'
    OR
    setenv bootargs 'console=ttyS2,115200n8 root=/dev/nfs nfsroot=$nfs_serverip:$targetFS_path rw rootwait ip=dhcp mem=32M@0xc0000000 mem=64M@0xc4000000'