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.

Cannot open source file "ti/sysbios/family/c66/vayu/Power.h"

Other Parts Discussed in Thread: SYSBIOS, AM5726

Hello,


I am trying to work through the IPC Install Guide Linux and my command of making the ipc-bios.mak is failing because of the missing file of  "ti/sysbios/family/c66/vayu/Power.h" in "IpcPwerDsp_dra7xx.c".

Does anybody know how to fix this?


I am trying to do the same like in this post:

http://e2e.ti.com/support/arm/sitara_arm/f/791/t/492034

Maybe my problem is in the products.mak. I think I have to use following stuff:

PLATFORM = DRA7XX

TOOLCHAIN_LONGNAME = arm-linux-gnueabihf (from Linux-SDK)

TOOLCHAIN_INSTALL_DIR = LINUX_SDK_DIR/linux-devkit/sysroots/x86_64-arago-linux/usr

AF_RPMSG = 41 (???)

XDC_INSTALL_DIR = CCS6_DIR/xdctoos_3_31_02_38_core

BIOS_INSTALL_DIR = CCS6_DIR/bios_41_04_54

ti.targets.elf.C66 = CCS6_DIR/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0

gnu.targets.arm.A15F = CCS6_DIR/ccsv6/tools/compiler/gcc-arm-none-eabi-4_8-2014q3 (???)

Is there something wrong?

  • Please post what processor and what software SDK you are using.
  • I am using the AM5726 EVM Board, so I want to use the Cortex A15 as Linux Host and the C6678 DSP Cores.
    I think I use the latest Linux SDK, 02.00.01.07
  • Thanks. I will ask the Linux team to check this and comment.
  • Some more informations:

    ###############################################################
    ======== .libraries [./packages/ti/pm/] ========
    cle66 package/package_ti.pm.c ...
    cle66 IpcPowerDsp_dra7xx.c ...
    "IpcPowerDsp_dra7xx.c", line 52: fatal error #1965: cannot open source file "ti/sysbios/family/c66/vayu/Power.h"
    1 catastrophic error detected in the compilation of "IpcPowerDsp_dra7xx.c".
    Compilation terminated.
    ###############################################################

    This is where it crashes all the time while running make -f ipc-bios.mak all



    If I don't use the option for ti.targets.elf.C66, everything works fine. But then I have the problem, that I cannot build any of the DRA7XX_linux_elf makefile examples. The reason is because there is no input file "ti.platforms.evmDRA7XX:dsp1"

    This is the complete error message, after trying to call make for the ex02_message example:

    ###############################################################
    # Making dsp1 ...
    make -C dsp1 PROCLIST="dsp1 host"
    make[1]: Entering directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    make PROFILE=debug PROCLIST="dsp1 host" server_dsp1.x
    make[2]: Entering directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    #
    # Making bin/debug/configuro/.config ...
    /home/audis/ti/xdctools_3_31_02_38_core/xs --xdcpath="/home/audis/ti/bios_6_41_04_54/packages;/packages;/home/audis/ti/xdctools_3_31_02_38_core/packages" \
    xdc.tools.configuro -o bin/debug/configuro \
    -t ti.targets.elf.C66 \
    -c \
    -p ti.platforms.evmDRA7XX:dsp1 \
    -b ../shared/config.bld -r debug \
    Dsp1.cfg
    xdc.tools.configuro: extraneous arguments ignored: '-b ...'
    Usage: xs xdc.tools.configuro [--help]
    [-v | -q]
    [-@ optionsfile]
    [-o outdir]
    [-b config_bld | -c codegen_dir | --cb]
    [-t target] [-p platform[:instance]] [-r profile]
    [-Dname=value]
    [-w | -x regexp]
    [--rtsName pkg_name]
    [--cfgArgs args_string]
    [--linkTemplate linker_template]
    [--pkg] [--generationOnly]
    [--compileOptions compile_options_string]
    [--linkOptions linker_options_string]
    [--oc compiler.opt] [--ol linker.cmd]
    infile.cfg
    js: "/home/audis/ti/xdctools_3_31_02_38_core/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: Error: can't open input file 'ti.platforms.evmDRA7XX:dsp1'
    make[2]: *** [bin/debug/configuro/.config] Error 1
    make[2]: Leaving directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    make[1]: *** [debug] Error 2
    make[1]: Leaving directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    make: *** [dsp1] Error 2
    ###############################################################
  • Hi, Kevin,

    Do you plan to run Linux on ARM core? If you do, you are in the wrong directory. You should modify DRA7xx_linux_elf/ex02/messageq/products.mak. This products.mak does not have 'gnu.targets.arm.A15F' dependency. In #### BIOS-side toolchains ####, you only need to specify that for C66. Also, if you compare bios/ex02/host/MainHost.c and linux/ex02/host/main_host.c, the former calls BIOS_start() as RTOS application, and the latter a Linux application.

    Rex

  • Thanks for the reply. Yes, my idea was to run the Linux example on the ARM core.

    So what should I do with the IPC Install Guide? Leave the the gnu.targets empty? Then the installation will work. But how should I modify my products.mak of the DRA7xx_linux_elf/ex02/messageq example?

    I tried this:

    #  ======== products.mak ========
    #

    # look for other products.mak file to override local settings
    ifneq (,$(wildcard $(EXBASE)/../products.mak))
    include $(EXBASE)/../products.mak
    else
    ifneq (,$(wildcard $(EXBASE)/../../products.mak))
    include $(EXBASE)/../../products.mak/
    # Define IPC_INSTALL_DIR since not defined in IPC top-level products.mak
    IPC_INSTALL_DIR = $(word 1,$(subst /examples, examples,$(CURDIR)))
    endif
    endif

    # By default, the necessary build variables are found/assigned via
    # ../products.mak or ../../products.mak, included above.  If you want to
    # override these variables, or are building this example without
    # ../products.mak or ../../products.mak, uncomment and assign the variables
    # below.

    #DEPOT = /home/audis/ti/depot


    #### Linux toolchain ####
    #TOOLCHAIN_LONGNAME     = arm-linux-gnueabihf
    #TOOLCHAIN_INSTALL_DIR  = /home/audis/ti-processor-sdk-linux-am57xx-evm-02.00.01.07/linux-devkit/sysroots/x86_64-arago-linux/usr
    #TOOLCHAIN_PREFIX       = $(TOOLCHAIN_INSTALL_DIR)/bin/$(TOOLCHAIN_LONGNAME)-

    #### BIOS-side dependencies ####
    #BIOS_INSTALL_DIR       = /home/audis/ti/bios_6_41_04_54
    #IPC_INSTALL_DIR        = /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08
    #XDC_INSTALL_DIR        = /home/audis/ti/xdctools_3_31_02_38_core

    #### BIOS-side toolchains ####
    #ti.targets.arm.elf.M4  =
    #ti.targets.elf.C66     = /home/audis/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0

    # Use this goal to print your product variables.
    .show:
            @echo "HOST TOOLCHAIN_PREFIX = $(TOOLCHAIN_PREFIX)"
            @echo "BIOS_INSTALL_DIR      = $(BIOS_INSTALL_DIR)"
            @echo "IPC_INSTALL_DIR       = $(IPC_INSTALL_DIR)"
            @echo "XDC_INSTALL_DIR       = $(XDC_INSTALL_DIR)"
            @echo "ti.targets.arm.elf.M4 = $(ti.targets.arm.elf.M4)"
            @echo "ti.targets.elf.C66    = $(ti.targets.elf.C66)"

    But it didnt work:

    audis@AuDisDev:~/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq$ make
    #
    # Making dsp1 ...
    make -C dsp1 PROCLIST="dsp1 host"
    make[1]: Entering directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    make PROFILE=debug PROCLIST="dsp1 host" server_dsp1.x
    make[2]: Entering directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    #
    # Making bin/debug/configuro/.config ...
    /xs --xdcpath="/packages;/packages;/packages" \
                xdc.tools.configuro -o bin/debug/configuro \
                -t ti.targets.elf.C66 \
                -c  \
                -p ti.platforms.evmDRA7XX:dsp1 \
                -b ../shared/config.bld -r debug \
                Dsp1.cfg
    /bin/sh: 1: /xs: not found
    make[2]: *** [bin/debug/configuro/.config] Error 127
    make[2]: Leaving directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    make[1]: *** [debug] Error 2
    make[1]: Leaving directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    make: *** [dsp1] Error 2

    Looks like XDCTools are not correct, but I don't know why. I will check, but I hope you can give me more advises.

  • Okay, I removed the # before the variables and then it started building. It worked, but I still have some undefined symbols left, as you can see here:
    <Linking>

    undefined first referenced
    symbol in file
    --------- ----------------
    IpcPower_canHibernate /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/ipc/ipc.ae66<Ipc.obj>
    IpcPower_init /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/ipc/ipc.ae66<Ipc.obj>
    IpcPower_suspend /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/ipc/ipc.ae66<Ipc.obj>
    ti_trace_SysMin_Module_startup__E /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.oe66
    ti_trace_SysMin_abort__E /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.oe66
    ti_trace_SysMin_exit__E /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.oe66
    ti_trace_SysMin_putch__E /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.oe66
    ti_trace_SysMin_ready__E /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.oe66

    error: unresolved symbols remain
    error: errors encountered during linking; "bin/debug/server_dsp1.xe66" not
    built

    >> Compilation failure
    make[2]: *** [bin/debug/server_dsp1.xe66] Error 1
    make[2]: Leaving directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    make[1]: *** [debug] Error 2
    make[1]: Leaving directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    make: *** [dsp1] Error 2


    Do you know whats missing?
  • All the symbols you have mentioned are part of the IPC libraries. Are you sure you have set the path to the IPC_INSTALL_DIR correctly.

    We have archived the instructions to build the IPC examples in TI RTOS environment here:
    processors.wiki.ti.com/.../AM572x

    Make sure you are setting up the environment correctly before you try to build the examples.

    Regards,
    Rahul
  • I am acrually sure, that I have set the correct IPC_INSTALL_DIR. So what could be the reason, why the IPC libraries are not there? My guess is the DESTDIR in the products.mak of the IPC_INSTALL_DIR is the reason. Because I dont know what to write there.

    Sorry for my little knowledge about the installation stuff, but I have the feeling that a lot of informations are missing to let me really feel to know what I have to do there.

    Even with the link you have sent me, I have the feeling, that still something is missing...for example02, which I am trying to build, there is no information about the product.mak there. So I have to guess it should be similar to the example01.

    Also there it is written:

    "2. Open readme.txt file and follow build instructions step-by-step. Make sure there is no spaces between variable name and its value. See Hello World example environment varaible settings for reference."

    The only readme text is this:

    #
    #  ======== readme.txt ========
    #

    MessageQ Example

    Program Logic:
    The slave creates a message to pass data around. The host sends a message to
    the slave core with a dummy payload. The slave then sends the message back to
    the host. This process is repeated 14 times. Then the host a shutdown message
    to the slave. The slave returns the message, shuts itself down and
    reinitializes itself for future runs.

    This is not a step-by-step instruction to make it work...so I don't know whats missing there.

    Small conclusion:

    I want to build the IPC libraries. So I have to make following steps:

    - configure the products.mak in ipc_3_41_0_08 (IPC_INSTALL_DIR)

    -> DEPOT = /home/audis/ti

    -> PLATFORM = DRA7XX

    -> DESTDIR = /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08

    -> TOOLCHAIN_LONGNAME = arm-linux-gnueabihf

    -> TOOLCHAIN_INSTALL_DIR = /home/audis/ti-processor-sdk-linux-am57xx-evm-02.00.01.07/linux-devkit/sysroots/x86_64-arago-linux/usr

    -> AF_RPMSG = 41

    -> XDC_INSTALL_DIR = $(DEPOT)/xdctools_3_31_02_38_core

    -> BIOS_INSTALL_DIR = $(DEPOT)/bios_6_41_04_54

    -> BIOS_SMPENABLED=0

    The rest ist empty!

    - sudo make distclean

    - sudo make -f ipc-linux.mak config

    - sudo make install

    - sudo make -f ipc-bios.mak clean

    - sudo make -f ipc-bios.mak all


    The IPC libraries should be generated, right??? And I guess they should be in DESTDIR, right??

    So then I want to build the example02 MessageQ:

    - open the products.mak file in the DRA7XX_linux_elf/ex02_message folder

    -> DEPOT = /home/audis/ti

    -> TOOLCHAIN_LONGNAME     = arm-linux-gnueabihf

    -> TOOLCHAIN_INSTALL_DIR  = /home/audis/ti-processor-sdk-linux-am57xx-evm-02.00.01.07/linux-devkit/sysroots/x86_64-arago-linux/usr

    -> BIOS_INSTALL_DIR       = $(DEPOT)/bios_6_41_04_54

    -> IPC_INSTALL_DIR        = /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08

    -> XDC_INSTALL_DIR        = $(DEPOT)/xdctools_3_31_02_38_core

    -> ti.targets.arm.elf.M4  = $(DEPOT)/ccsv6/tools/compiler/gcc-arm-none-eabi-4_-2014q3

    -> ti.targets.elf.C66     = $(DEPOT)/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0

    And this is the complete error message:

    audis@AuDisDev:~/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq$ make
    #
    # Making dsp1 ...
    make -C dsp1 PROCLIST="dsp1 dsp2 host"
    make[1]: Entering directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    make PROFILE=debug PROCLIST="dsp1 dsp2 host" server_dsp1.x
    make[2]: Entering directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    #
    # Making bin/debug/configuro/.config ...
    /home/audis/ti/xdctools_3_31_02_38_core/xs --xdcpath="/home/audis/ti/bios_6_41_04_54/packages;/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/packages;/home/audis/ti/xdctools_3_31_02_38_core/packages" \
                xdc.tools.configuro -o bin/debug/configuro \
                -t ti.targets.elf.C66 \
                -c /home/audis/ti/ccsv6/tools/compiler/c6000_7.4.14 \
                -p ti.platforms.evmDRA7XX:dsp1 \
                -b ../shared/config.bld -r debug \
                Dsp1.cfg
    making package.mak (because of package.bld) ...
    generating interfaces for package configuro (because package/package.xdc.inc is older than package.xdc) ...
    configuring Dsp1.xe66 from package/cfg/Dsp1_pe66.cfg ...
    generating custom ti.sdo.utils library makefile ...
    generating custom ti.sysbios library makefile ...
    generating custom ti.sdo.ipc library makefile ...
    Starting build of library sources ...
    making /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/ipc.ae66 ...
    gmake[1]: Entering directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/ipc'
    cle66 /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/packages/ti/sdo/utils/NameServer.c ...
    are66 Ipc.obj ...
    gmake[1]: Leaving directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/ipc'
    making /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/sysbios/sysbios.ae66 ...
    gmake[1]: Entering directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/sysbios'
    cle66 /home/audis/ti/bios_6_41_04_54/packages/ti/sysbios/BIOS.c ...
    asme66 /home/audis/ti/bios_6_41_04_54/packages/ti/sysbios/family/c64p/Exception_asm.s64P ...
    asme66 /home/audis/ti/bios_6_41_04_54/packages/ti/sysbios/family/c64p/Hwi_asm.s62 ...
    asme66 /home/audis/ti/bios_6_41_04_54/packages/ti/sysbios/family/c64p/Hwi_asm_switch.s62 ...
    asme66 /home/audis/ti/bios_6_41_04_54/packages/ti/sysbios/family/c64p/Hwi_disp_always.s64P ...
    asme66 /home/audis/ti/bios_6_41_04_54/packages/ti/sysbios/timers/dmtimer/Timer_asm.s64P ...
    asme66 /home/audis/ti/bios_6_41_04_54/packages/ti/sysbios/family/c62/TaskSupport_asm.s62 ...
    are66 BIOS.obj c64p_Exception_asm.obj c64p_Hwi_asm.obj c64p_Hwi_asm_switch.obj c64p_Hwi_disp_always.obj dmtimer_Timer_asm.obj c62_TaskSupport_asm.obj ...
    gmake[1]: Leaving directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/sysbios'
    making /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/utils.ae66 ...
    gmake[1]: Entering directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/utils'
    cle66 /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/packages/ti/sdo/utils/UTILS.c ...
    are66 UTILS.obj ...
    gmake[1]: Leaving directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/utils'
    Build of libraries done.
    cle66 package/cfg/Dsp1_pe66.c ...
    #
    # Making bin/debug/obj/MainDsp1.oe66 ...
    /home/audis/ti/ccsv6/tools/compiler/c6000_7.4.14/bin/cl6x -c  -qq -pdsw225 -ppd=bin/debug/obj/MainDsp1.oe66.dep -ppa -D_DEBUG_=1 --symdebug:dwarf -@bin/debug/configuro/compiler.opt -I. --output_file=bin/debug/obj/MainDsp1.oe66 -fc MainDsp1.c
    #
    # Making bin/debug/obj/Server.oe66 ...
    /home/audis/ti/ccsv6/tools/compiler/c6000_7.4.14/bin/cl6x -c  -qq -pdsw225 -ppd=bin/debug/obj/Server.oe66.dep -ppa -D_DEBUG_=1 --symdebug:dwarf -@bin/debug/configuro/compiler.opt -I. --output_file=bin/debug/obj/Server.oe66 -fc Server.c
    #
    # Making bin/debug/server_dsp1.xe66 ...
    /home/audis/ti/ccsv6/tools/compiler/c6000_7.4.14/bin/cl6x -z -w -q -u _c_int00 -c -m bin/debug/obj/server_dsp1.xe66.map -o bin/debug/server_dsp1.xe66 bin/debug/obj/MainDsp1.oe66 bin/debug/obj/Server.oe66 \
                 bin/debug/configuro/linker.cmd -l /home/audis/ti/ccsv6/tools/compiler/c6000_7.4.14/lib/rts6600_elf.lib
    <Linking>

     undefined                         first referenced                                                                                                                                                                        
      symbol                               in file                                                                                                                                                                             
     ---------                         ----------------                                                                                                                                                                        
     IpcPower_canHibernate             /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/ipc/ipc.ae66<Ipc.obj>
     IpcPower_init                     /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/ipc/ipc.ae66<Ipc.obj>
     IpcPower_suspend                  /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.src/ipc/ipc.ae66<Ipc.obj>
     ti_trace_SysMin_Module_startup__E /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.oe66                     
     ti_trace_SysMin_abort__E          /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.oe66                     
     ti_trace_SysMin_exit__E           /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.oe66                     
     ti_trace_SysMin_putch__E          /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.oe66                     
     ti_trace_SysMin_ready__E          /home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1/bin/debug/configuro/package/cfg/Dsp1_pe66.oe66                     

    error: unresolved symbols remain
    error: errors encountered during linking; "bin/debug/server_dsp1.xe66" not
       built

    >> Compilation failure
    make[2]: *** [bin/debug/server_dsp1.xe66] Error 1
    make[2]: Leaving directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    make[1]: *** [debug] Error 2
    make[1]: Leaving directory `/home/audis/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07/ipc_3_41_00_08/examples/DRA7XX_linux_elf/ex02_messageq/dsp1'
    make: *** [dsp1] Error 2

    I don't have any idea what could be wrong or even how the IPC_INSTALL_DIR should be set correctly. So I really need more help, for letting me know, what exactly I am doing wrong here.

  • On the link you have sent me, is just descriptions about the RTOS examples. I actually need the Linux example descriptions...That's why there is a better explanation in the readme.txt.
    Where can I find more information about the Linux examples?
  • Okay, I solved the problem and it was depending on my main issue, the missing power.h file.

    In the products.mak for ipc_3_41_00_08, it was wrong to take the BIOS from my installed CCS6 (BIOS_6_41_04_54). I had to take the BIOS from the SDK-RTOS (BIOS_6_45_00_19), because there this file exists.

    So with these correction in the products.maks everything worked out fine after executing make -f ipc-bios.mak all:
    BIOS_INSTALL_DIR = $(DEPOT)/bios_6_45_00_19
    ti.targets.elf.C66 = $(DEPOT)/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0

    Everything was built for the DRA7XX platform, because the power.h file was found in the right folder and the example could be built without any problems!
  • Hi, Kevin,

    Let's go through your questions first:

    Q: what should I do with the IPC Install Guide? A: IPC install Guide is to build the IPC libraries for Linux and BIOS if you need to. I don't believe they have anything to do with the examples.The lPC linux libraries exist in the pre-built AM57x file system.

    Q: Leave the the gnu.targets empty? A; I don't see any gnu.targets in ex02_messageq/products.mak. You should only see ti.targets.arm.elf.M4 and ti.targets.elf.C66. If you see any other BIOS toolchains, you are in the wrong directory. you should be in DRA7xx_linux_elf/ex02_messageq directory and modify the products.mak in this folder. You should uncomment those apply to you. In this example, it demos messageq between ARM and DSP (C66), so yes, you only enable the C66 line. After setting up the paths in products.mak, you simply issue 'make' and that shoud build the example images based on PROCLIST.

    I see the BIOS version in your products.mak is 6_41_04_54. The proc-SDK 2.00.01.07 comes with 6_45_00_19. I suggest you use version in proc-sdk.

    DESTDIR is irrelevant. it only applies to 'make install' for IPC. When building IPC libraries, it is nice to define it because all executables/libraries are scattered around in different folders. Using make install, you can collect them into one directory, or install them to your target file system. To build ex02_messageq, DESTDIR does not exsit in the products.mak and does not apply.

    The readme.txt under DRA7xx_bios_elf/ex02_messageq describes the steps for DSP<->DSP example. You can refer to it as a reference, but need to tweak a bit to bring in the ARM side toolchain and ignore toolchains for gnu.targets, ti.targets for M4 and ARP32.  I built the ex02_example when I first worked on this thread without any issues. The changes I made in ex02/products.mak are as following:

    DEPOT = /home/guest/work/ti-processor-sdk-rtos-am57xx-evm-02.00.01.07

    #### Linux toolchain ####
    TOOLCHAIN_LONGNAME     = arm-linux-gnueabihf
    TOOLCHAIN_INSTALL_DIR  = $(DEPOT)/../ti-processor-sdk-linux-am57xx-evm-02.00.01.07/linux-devkit/sysroots/x86_64-arago-linux/usr
    TOOLCHAIN_PREFIX       = $(TOOLCHAIN_INSTALL_DIR)/bin/$(TOOLCHAIN_LONGNAME)-

    #### BIOS-side dependencies ####
    BIOS_INSTALL_DIR       = $(DEPOT)/bios_6_45_00_19
    IPC_INSTALL_DIR        = $(DEPOT)/ipc_3_41_00_08
    XDC_INSTALL_DIR        = $(DEPOT)/xdctools_3_31_02_38_core

    CCS = /home/guest/work/CCS_6.1.2.15/ccsv6/tools/compiler
    #### BIOS-side toolchains ####
    #ti.targets.arm.elf.M4  = $(DEPOT)/_your_ti_arm_codegen_install_
    ti.targets.elf.C66     = $(CCS)/ti-cgt-c6000_8.1.0

    Once the images are built, you can copy the images to your target file system from host/bin/debug and dsp1/bin/debug. Since remoteproc on AM57x EVM loads the DSP image during kerne bootup time with hard coded file name, dra7-dsp1-fw.xe66, you will need to rename the dsp image, server_dsp1.xe66, to the hard coded file name. Then, you should be able to run the host application app_host from linux kernel prompt. Since only dsp1 is defined in PROLIST in makefile, you will issue './app_host DSP1' to run the example.  Do restart the dra7xx-lad without -g option. That is a known issue causing error and is fixed in the next IPC release.

    Rex

  • Thanks Rex! I already solved the problem and everything worked out fine. I just had the problem of understanding the dependencies of the IPC examples and the IPC libraries. I thought it would be good to rebuild the libs and then build the example.

    But everything is working fine now, I can start the example like described in the guide and with this thread (http://e2e.ti.com/support/arm/sitara_arm/f/791/t/492034)