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.

Arm + Dsp work in Linux

Hi,

I've got great working Linux on LCDK and on my custom board. As I understand linux works just with ARM processor.

Now I want to work with ARM and DSP in Linux. For example ARM recieved some data from McASP, then I send it to DSP, DSP processed this data and send it back to ARM.

Is there some manual on this subject, or I can work with DSP only from CCS?

p.s.

Linux is from mcsdk.

  • hi, again.

    I found syslink_2_21_01_05 folder in mcsdk.
    I should edit products.mak but I don't know where I can find needed folders.

    I downloaded syslink_2_21_03_11 from this link
    http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/syslink/2_21_03_11/index_FDS.html
    but there was no anything exept syslink.

    I've got such list:

    DEVICE = _your_device_
    DEPOT =  _your_depot_folder_
    ######## For OMAPL1XX device ########
    else ifeq ("$(DEVICE)","OMAPL1XX")
    LINUXKERNEL                    =   $(DEPOT)/_your_linux_kernel_install_
    CGT_ARM_INSTALL_DIR  = $(DEPOT)/_your_arm_code_gen_install_
    CGT_ARM_PREFIX            = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR             = $(DEPOT)/_your_ipc_install_
    BIOS_INSTALL_DIR          = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR           = $(DEPOT)/_your_xdctools_install_

    I could edit just this 4 lines
    DEVICE                     = OMAPL1XX
    DEPOT                      =  /home/user/ti/
    IPC_INSTALL_DIR  = $(DEPOT)/ipc_1_25_03_15
    LINUXKERNEL        =   $(DEPOT)/mcsdk_1_01_00_02/board-support/linux-3.3-psp03.22.00.06.sdk/kernel


    So I've got 2 questions:

    1. I've got compiler, which I generate Linux kernel.
    I can edit this line
    CGT_ARM_INSTALL_DIR  = $(DEPOT)/arago-2011.09/armv5te
    but there will be an error in the next line
    CGT_ARM_PREFIX            = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-

    in bin folder I've got just arm-arago... files.
    Should I edit this line like this:
    CGT_ARM_PREFIX            = $(CGT_ARM_INSTALL_DIR)/bin/arm-arago-linux-gnueabi-
    Or should I search for another compiler?


    2. Where can I find folders for this lines?
    BIOS_INSTALL_DIR          = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR           = $(DEPOT)/_your_xdctools_install_

    Thanks.

  • Hi Alex,

    This is the file I have modified for own syslink build.

    Please create new thread if any follow questions.

    #
    #   Copyright (c) 2008-2012, Texas Instruments Incorporated
    #
    #   Redistribution and use in source and binary forms, with or without
    #   modification, are permitted provided that the following conditions
    #   are met:
    #
    #   *  Redistributions of source code must retain the above copyright
    #      notice, this list of conditions and the following disclaimer.
    #
    #   *  Redistributions in binary form must reproduce the above copyright
    #      notice, this list of conditions and the following disclaimer in the
    #      documentation and/or other materials provided with the distribution.
    #
    #   *  Neither the name of Texas Instruments Incorporated nor the names of
    #      its contributors may be used to endorse or promote products derived
    #      from this software without specific prior written permission.
    #
    #   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    #   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    #   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    #   PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    #   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    #   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    #   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    #   OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    #   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    #   OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    #   EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    #
    
    #Titus
    
    SYSLINK_INSTALL_DIR = $(CURDIR)
    
    # List of supported devices (choose one): OMAP3530, OMAPL1XX, TI816X, TI814X
    #    TI813X, TI811X
    #
    DEVICE = OMAPL1XX
    
    # Master core (GPP) OS type (choose one): Linux, Qnx, Bios
    #
    GPPOS = Linux
    
    # SysLink Linux driver DEBUG/TRACE options (choose one): 0 or 1
    #
    # Note that these options are only used by the Linux HLOS driver.  RTOS
    # side libraries, Qnx libraries, and user mode Linux libraries are always
    # built in both debug and release profiles, and users can switch between
    # them when linking their executable (without rebuilding SysLink).
    #
    # Enabling SYSLINK_BUILD_DEBUG enables runtime assertion checking and makes
    # some internal 'static' methods and objects global (so you can set
    # breakpoints on them and/or inspect them in a debugger).
    #
    # Enabling SYSLINK_TRACE_ENABLE enables tracing throughout the SysLink
    # code base.  This is especially helpful during development, but may not
    # be necessary at production.
    #
    SYSLINK_BUILD_DEBUG=1
    SYSLINK_TRACE_ENABLE=1
    
    # SysLink OPTIMIZE option (choose one): 0 or 1
    #
    # Enabling SYSLINK_BUILD_OPTIMIZE removes many runtime API checks.  As a
    # result, if the user uses SysLink in an unsupported way, rather than getting
    # a failing return value, the system may crash or become unstable.
    # SYSLINK_BUILD_OPTIMIZED is intended to be used in a closed system where all
    # code paths are known, and error conditions are ensured never to occur - so
    # it's not for everyone.
    #
    # Note that SYSLINK_BUILD_OPTIMIZE removes these checks throughout the
    # SysLink stack - that includes RTOS, user, and driver layers if applicable
    # to your environment.
    #
    SYSLINK_BUILD_OPTIMIZE=0
    
    # SysLink HLOS driver Notify options (choose one): NOTIFYDRIVERSHM,
    #    NOTIFYDRIVERCIRC
    #
    SYSLINK_NOTIFYDRIVER=NOTIFYDRIVERSHM
    
    # SysLink HLOS driver MessageQ Transport options (choose one): TRANSPORTSHM,
    #    TRANSPORTSHMNOTIFY, TRANSPORTSHMCIRC
    #
    SYSLINK_TRANSPORT=TRANSPORTSHM
    
    # Set SDK type when building for a TI SDK kit (choose one): EZSDK or NONE
    #
    SDK = NONE
    
    # Define root dir to install SysLink driver and samples for target file-system
    #
    EXEC_DIR = /home/titus/ti-e2e/syslink_2_21_01_05/Test
    
    # Define file format for loader and slave executables (choose one): COFF, ELF
    #
    LOADER = ELF
    
    # Optional: recommended to install all dependent components in one folder.
    #
    DEPOT = _your_depot_install_
    
    # Define the product variables for the device you will be using.
    #
    ######## For OMAP3530 device ########
    ifeq ("$(DEVICE)","OMAP3530")
    LINUXKERNEL             = $(DEPOT)/_your_linux_kernel_install_
    CGT_ARM_INSTALL_DIR     = $(DEPOT)/_your_arm_code_gen_install_
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR         = $(DEPOT)/_your_ipc_install_
    BIOS_INSTALL_DIR        = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR         = $(DEPOT)/_your_xdctools_install_
    
    # If LOADER=ELF then below elf tools path is required else set C64P path
    ifeq ("$(LOADER)","ELF")
    CGT_C64P_ELF_INSTALL_DIR= $(DEPOT)/_your_c64pelf_code_gen_install_
    else
    CGT_C64P_INSTALL_DIR    = $(DEPOT)/_your_c64p_code_gen_install_
    endif
    
    ######## For TI816X device ########
    else ifeq ("$(DEVICE)","TI816X")
    LINUXKERNEL             = $(DEPOT)/_your_linux_kernel_install_
    CGT_ARM_INSTALL_DIR     = $(DEPOT)/_your_arm_code_gen_install_
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR         = $(DEPOT)/_your_ipc_install_
    BIOS_INSTALL_DIR        = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR         = $(DEPOT)/_your_xdctools_install_
    CGT_C674_ELF_INSTALL_DIR= $(DEPOT)/_your_c674elf_code_gen_install_
    
    # SYS/BIOS timer frequency (ti.sysbios.timers.dmtimer.Timer.intFreq)
    TI81XXDSP_DMTIMER_FREQ  = 32768
    
    # If SDK=NONE then below tools path is required
    ifeq ("$(SDK)","NONE")
    CGT_M3_ELF_INSTALL_DIR  = $(DEPOT)/_your_m3elf_code_gen_install_
    endif
    
    ######## For TI814X device ########
    else ifeq ("$(DEVICE)","TI814X")
    # Set one of the following OS variables
    LINUXKERNEL             = $(DEPOT)/_your_linux_kernel_install_
    QNX_INSTALL_DIR         = $(DEPOT)/_your_qnx_install_
    
    CGT_ARM_INSTALL_DIR     = $(DEPOT)/_your_arm_code_gen_install_
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR         = $(DEPOT)/_your_ipc_install_
    BIOS_INSTALL_DIR        = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR         = $(DEPOT)/_your_xdctools_install_
    CGT_C674_ELF_INSTALL_DIR= $(DEPOT)/_your_c674elf_code_gen_install_
    
    # SYS/BIOS timer frequency (ti.sysbios.timers.dmtimer.Timer.intFreq)
    TI81XXDSP_DMTIMER_FREQ  = 20000000
    
    # If SDK=NONE then below tools path is required
    ifeq ("$(SDK)","NONE")
    CGT_M3_ELF_INSTALL_DIR  = $(DEPOT)/_your_m3elf_code_gen_install_
    endif
    
    # If GPPOS=Bios then below tools path is required
    ifeq ("$(GPPOS)","Bios")
    CGT_A8_ELF_INSTALL_DIR  = $(DEPOT)/_your_a8elf_code_gen_install_
    endif
    
    ######## For TI813X device ########
    else ifeq ("$(DEVICE)","TI813X")
    LINUXKERNEL             = $(DEPOT)/_your_linux_kernel_install_
    CGT_ARM_INSTALL_DIR     = $(DEPOT)/_your_arm_code_gen_install_
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR         = $(DEPOT)/_your_ipc_install_
    BIOS_INSTALL_DIR        = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR         = $(DEPOT)/_your_xdctools_install_
    
    # If SDK=NONE then below tools path is required
    ifeq ("$(SDK)","NONE")
    CGT_M3_ELF_INSTALL_DIR  = $(DEPOT)/_your_m3elf_code_gen_install_
    endif
    
    ######## For TI811X device ########
    else ifeq ("$(DEVICE)","TI811X")
    # Set one of the following OS variables
    LINUXKERNEL             = $(DEPOT)/_your_linux_kernel_install_
    QNX_INSTALL_DIR         = $(DEPOT)/_your_qnx_install_
    
    CGT_ARM_INSTALL_DIR     = $(DEPOT)/_your_arm_code_gen_install_
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-
    IPC_INSTALL_DIR         = $(DEPOT)/_your_ipc_install_
    BIOS_INSTALL_DIR        = $(DEPOT)/_your_bios_install_
    XDC_INSTALL_DIR         = $(DEPOT)/_your_xdctools_install_
    CGT_C674_ELF_INSTALL_DIR= $(DEPOT)/_your_c674elf_code_gen_install_
    
    # SYS/BIOS timer frequency (ti.sysbios.timers.dmtimer.Timer.intFreq)
    TI81XXDSP_DMTIMER_FREQ  = 20000000
    
    # If SDK=NONE then below tools path is required
    ifeq ("$(SDK)","NONE")
    CGT_M3_ELF_INSTALL_DIR  = $(DEPOT)/_your_m3elf_code_gen_install_
    endif
    
    ######## For OMAPL1XX device ########
    #Titus
    else ifeq ("$(DEVICE)","OMAPL1XX")
    LINUXKERNEL             = /home/titus/ti-e2e/OMAPL138_LCDK/ti-sdk-omapl138-lcdk-01.00.00/board-support/linux-3.1.10
    CGT_ARM_INSTALL_DIR     = /home/ti/raja/linux-devkit
    CGT_ARM_PREFIX          = $(CGT_ARM_INSTALL_DIR)/bin/arm-arago-linux-gnueabi-
    IPC_INSTALL_DIR         = /opt/ti/ipc_1_25_03_15
    BIOS_INSTALL_DIR        = /opt/ti/bios_6_35_04_50
    XDC_INSTALL_DIR         = /opt/ti/xdctools_3_25_03_72
    
    # If LOADER=ELF then below elf tools path is required else set C674 path
    ifeq ("$(LOADER)","ELF")
    CGT_C674_ELF_INSTALL_DIR= /opt/ti/ccsv5/tools/compiler/c6000_7.4.4/
    else
    CGT_C674_INSTALL_DIR= /opt/ti/ccsv5/tools/compiler/c6000_7.4.4/
    endif
    ######## End of device specific variables ########
    
    else ifeq ($(MAKECMDGOALS), clean)
    else ifeq ($(MAKECMDGOALS), clobber)
    else ifeq ($(MAKECMDGOALS), .show-products)
    else ifeq ($(MAKECMDGOALS), help)
    else
        $(error DEVICE is set to "$(DEVICE)", which is invalid. Set this in <SysLink Install>/products.mak. Refer to the SysLink Install Guide for more information)
    endif
    
    # Use this goal to print your product variables.
    .show-products:
    	@echo "DEPOT                    = $(DEPOT)"
    	@echo "DEVICE                   = $(DEVICE)"
    	@echo "GPPOS                    = $(GPPOS)"
    	@echo "SDK                      = $(SDK)"
    	@echo "TI81XXDSP_DMTIMER_FREQ   = $(TI81XXDSP_DMTIMER_FREQ)"
    	@echo "SYSLINK_BUILD_DEBUG      = $(SYSLINK_BUILD_DEBUG)"
    	@echo "SYSLINK_BUILD_OPTIMIZE   = $(SYSLINK_BUILD_OPTIMIZE)"
    	@echo "SYSLINK_TRACE_ENABLE     = $(SYSLINK_TRACE_ENABLE)"
    	@echo "LOADER                   = $(LOADER)"
    	@echo "SYSLINK_INSTALL_DIR      = $(SYSLINK_INSTALL_DIR)"
    	@echo "IPC_INSTALL_DIR          = $(IPC_INSTALL_DIR)"
    	@echo "BIOS_INSTALL_DIR         = $(BIOS_INSTALL_DIR)"
    	@echo "XDC_INSTALL_DIR          = $(XDC_INSTALL_DIR)"
    	@echo "LINUXKERNEL              = $(LINUXKERNEL)"
    	@echo "QNX_INSTALL_DIR          = $(QNX_INSTALL_DIR)"
    	@echo "CGT_ARM_PREFIX           = $(CGT_ARM_PREFIX)"
    	@echo "CGT_C64P_INSTALL_DIR     = $(CGT_C64P_INSTALL_DIR)"
    	@echo "CGT_C64P_ELF_INSTALL_DIR = $(CGT_C64P_INSTALL_DIR)"
    	@echo "CGT_C674_INSTALL_DIR     = $(CGT_C674_INSTALL_DIR)"
    	@echo "CGT_C674_ELF_INSTALL_DIR = $(CGT_C674_ELF_INSTALL_DIR)"
    	@echo "CGT_M3_ELF_INSTALL_DIR   = $(CGT_M3_ELF_INSTALL_DIR)"
    	@echo "CGT_A8_ELF_INSTALL_DIR   = $(CGT_A8_ELF_INSTALL_DIR)"
    	@echo "EXEC_DIR                 = $(EXEC_DIR)"