Hi,
I try to start syslink helloword example on my LCDK. Syslink is 2_21_01_05 version.
Here is my product.mak file:
# # 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. # 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/user/ti/sys_result # 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 = /home/user/ti # 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 ######## else ifeq ("$(DEVICE)","OMAPL1XX") LINUXKERNEL = $(DEPOT)/ti-sdk-omapl138-lcdk-01.00.00/board-support/linux-3.1.10 CGT_ARM_INSTALL_DIR = $(DEPOT)/arago-2011.09/armv5te CGT_ARM_PREFIX = $(CGT_ARM_INSTALL_DIR)/bin/arm-arago-linux-gnueabi- IPC_INSTALL_DIR = $(DEPOT)/ipc_1_25_03_15 BIOS_INSTALL_DIR = $(DEPOT)/bios_6_40_01_15 XDC_INSTALL_DIR = $(DEPOT)/xdctools_3_30_01_25_core # 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.2 else CGT_C674_INSTALL_DIR= /opt/ti/ccsv5/tools/compiler/c6000_7.4.2 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)"
Making syslink is success. Making examples isn't.
here is making helloword examle log:
#
# Making all ...
make -C host all
make[1]: Entering directory `/home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/host'
#
# Making all ...
make PROFILE=debug app_host
make[2]: Entering directory `/home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/host'
make[2]: Nothing to be done for `app_host'.
make[2]: Leaving directory `/home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/host'
make PROFILE=release app_host
make[2]: Entering directory `/home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/host'
make[2]: Nothing to be done for `app_host'.
make[2]: Leaving directory `/home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/host'
make[1]: Leaving directory `/home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/host'
make -C dsp all
make[1]: Entering directory `/home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/dsp'
make PROFILE=debug server_dsp.x
make[2]: Entering directory `/home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/dsp'
#
# Making bin/debug/server_dsp.xe674 ...
/opt/ti/ccsv5/tools/compiler/c6000_7.4.2/bin/lnk6x --abi=eabi -w -q -c -m bin/debug/obj/server_dsp.xe674.map -o bin/debug/server_dsp.xe674 bin/debug/obj/main_dsp.oe674 bin/debug/obj/Server.oe674 configuro/linker.cmd -l /opt/ti/ccsv5/tools/compiler/c6000_7.4.2/lib/rts6740_elf.lib
undefined first referenced
symbol in file
--------- ----------------
ti_sdo_ipc_gates_GateMPSupportNull_query__E /home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/dsp/configuro/package/cfg/Dsp_pe674.oe674
ti_sdo_ipc_gates_GatePeterson_query__E /home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/dsp/configuro/package/cfg/Dsp_pe674.oe674
ti_sdo_ipc_heaps_HeapMemMP_isBlocking__E /home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/dsp/configuro/package/cfg/Dsp_pe674.oe674
error: unresolved symbols remain
error: errors encountered during linking; "bin/debug/server_dsp.xe674" not
built
make[2]: *** [bin/debug/server_dsp.xe674] Error 1
make[2]: Leaving directory `/home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/dsp'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/user/ti/syslink_2_21_01_05/examples/ex01_helloworld/dsp'
make: *** [all] Error 2
Could you tell me, why does making of server_dsp.xe674 is unsuccessful?
Thanks.