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.

unsresolved symbol while linking assembly files

Hello,

I have a video analytic project which needs to be ported on DSP of DM8148 using Syslink setup. I did the same successfully with only C code. But, finding issues while linking linear assembly files related to the analytic project.

I have a make file which compiles the C code and assembly code and generates tiva.ae674. Here, tiva.ae674 is generated successfully.

Am finding issue while linking this with the main application of the Syslink setup. I modified rules_c674.mk to link my tiva.ae674

Am using the following

1. DVRRDK_03.50.00.05

2. cgt6x_7_3_5

And here by am attaching the two make files for reference.

# Filename: rules_c674.mk
#
# Make rules for c674 - This file has all the common rules and defines required
#                     for DSP - c674 ISA
#
# This file needs to change when:
#     1. Code generation tool chain changes (currently it uses TI CGT)
#     2. Internal switches (which are normally not touched) has to change
#     3. XDC specific switches change
#     4. a rule common for c674 ISA has to be added or modified

# Set compiler/archiver/linker commands and include paths - Currently different
#  for ELF and COFF. In a future release of the toolchain, it would merge.
#ifeq ($(FORMAT),COFF)
 CODEGEN_PATH = $(CODEGEN_PATH_DSP)
 CODEGEN_INCLUDE = $(CODEGEN_PATH_DSP)/include
 CC = $(CODEGEN_PATH_DSP)/bin/cl6x 
 AR = $(CODEGEN_PATH_DSP)/bin/ar6x
 LNK = $(CODEGEN_PATH_DSP)/bin/lnk6x
#endif
#ifeq ($(FORMAT),ELF)
# CODEGEN_PATH = $(CODEGEN_PATH_DSPELF)
# CODEGEN_INCLUDE = $(CODEGEN_PATH_DSPELF)/include
# CC = $(CODEGEN_PATH_DSPELF)/bin/cl6x 
# AR = $(CODEGEN_PATH_DSPELF)/bin/ar6x
# LNK = $(CODEGEN_PATH_DSPELF)/bin/lnk6x
#endif


# Derive a part of RTS Library name based on ENDIAN: little/big
ifeq ($(ENDIAN),little)
  #RTSLIB_ENDIAN =
else
  RTSLIB_ENDIAN = e
endif

# Derive compiler switch and part of RTS Library name based on FORMAT: COFF/ELF
ifeq ($(FORMAT),COFF)
  CSWITCH_FORMAT = 
  #RTSLIB_FORMAT = 
  XDCINTERNAL_DEFINES = -Dxdc_target_types__=ti/targets/std.h -Dxdc_bld__vers_1_0_7_0_0
endif
ifeq ($(FORMAT),ELF)
  CSWITCH_FORMAT = --abi=elfabi 
  RTSLIB_FORMAT = _elf
  XDCINTERNAL_DEFINES = -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_bld__vers_1_0_7_2_0_10271
endif

# XDC Specific defines
ifneq ($(XDC_CFG_FILE_$(CORE)),)
  ifeq ($(PROFILE_$(CORE)),debug)
    CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)674
    #CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)674$(ENDIAN_EXT)    
  endif
  ifeq ($(PROFILE_$(CORE)),release)
    CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)674
    #CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)674$(ENDIAN_EXT)    
  endif
  ifeq ($(PROFILE_$(CORE)),whole_program_debug)
    CFG_CFILENAMEPART_XDC =p$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
    CFG_LNKFILENAMEPART_XDC=_x
  endif
  CFG_CFILE_XDC =$(patsubst %.cfg,%_$(CFG_CFILENAMEPART_XDC).c,$(notdir $(XDC_CFG_FILE_$(CORE))))
  CFG_C_XDC = $(addprefix $(CONFIGURO_DIR)/package/cfg/,$(CFG_CFILE_XDC))
  #XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC)_x.xdl, $(CFG_C_XDC))
  XDCLNKCMD_FILE =$(patsubst %.c, %$(CFG_LNKFILENAMEPART_XDC).xdl, $(CFG_C_XDC))
  CFG_COBJ_XDC = $(patsubst %.c,%.$(OBJEXT),$(CFG_CFILE_XDC))
#  OBJ_PATHS += $(CFG_COBJ_XDC)
  LNKCMD_FILE = $(CONFIGURO_DIR)/linker_mod.cmd
  SPACE := 
  SPACE += 
#  XDC_GREP_STRING = $(CONFIGURO_DIRNAME)
  XDC_GREP_STRING = $(CFG_COBJ_XDC)
#  XDC_GREP_STRING = $(subst $(SPACE),\|,$(COMP_LIST_$(CORE)))
#  XDC_GREP_STRING += \|$(CONFIGURO_DIRNAME)
endif

# Internal CFLAGS - normally doesn't change
CFLAGS_INTERNAL = -c -qq -pdsw225 -mv6740 $(CSWITCH_FORMAT) -mo -eo.$(OBJEXT) -ea.$(ASMEXT) --embed_inline_assembly
CFLAGS_DIROPTS = -fr=$(OBJDIR) -fs=$(OBJDIR) -ft=$(OBJDIR)

ifeq ($(TREAT_WARNINGS_AS_ERROR), yes)

CFLAGS_INTERNAL += --emit_warnings_as_errors

endif

ifneq ($(findstring $(ENABLE_FXN_PROFILE), TRUE true),)
CFLAGS_INTERNAL  += --entry_hook=FNPROF_entryHook --entry_parm=address --exit_hook=FNPROF_exitHook --exit_parm=address --remove_hooks_when_inlining
CFLAGS_APP_DEFINES += -DENABLE_FXN_PROFILE
endif

XDC_HFILE_NAME = $(basename $(XDC_CFG_FILE_$(CORE)))

# CFLAGS based on profile selected
ifeq ($(PROFILE_$(CORE)), debug)
#CFLAGS_INTERNAL += --symdebug:dwarf
CFLAGS_INTERNAL += --symdebug:dwarf -O3 -ms0 --opt_for_speed=5 --optimize_with_debug
 CFLAGS_XDCINTERNAL = -Dxdc_target_name__=C674  -Dxdc_bld__profile_debug -D_DEBUG_=1 
 ifndef MODULE_NAME
 CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_HFILE_NAME)_pe674.h' 
 endif
 LNKFLAGS_INTERNAL_PROFILE = 
endif
ifeq ($(PROFILE_$(CORE)), release)
CFLAGS_XDCINTERNAL = -Dxdc_target_name__=C674 -Dxdc_bld__profile_release -DGENERIC -ms -oe -O3 -k -op0 -os --symdebug:dwarf --optimize_with_debug --inline_recursion_limit=20 --opt_for_speed=4 
# ifndef MODULE_NAME
 CFLAGS_XDCINTERNAL += -Dxdc_cfg__header__='$(CONFIGURO_DIR)/package/cfg/$(XDC_HFILE_NAME)_pe674.h' 
# endif
 LNKFLAGS_INTERNAL_PROFILE = -o2
 #LNKFLAGS_INTERNAL_PROFILE = --opt='--endian=$(ENDIAN) --abi=$(CSWITCH_FORMAT) -qq -pdsw225 $(CFLAGS_GLOBAL_$(CORE)) -oe --symdebug:dwarf -ms -op2 -O3 -k -os --optimize_with_debug --inline_recursion_limit=20 --diag_suppress=23000' --strict_compatibility=on
# LNKFLAGS_INTERNAL_PROFILE = 
endif
CFLAGS_XDCINTERNAL += $(XDCINTERNAL_DEFINES)

# Following 'if...' block is for an application; to add a #define for each
#   component in the build. This is required to know - at compile time - which
#   components are on which core.
ifndef MODULE_NAME
  # Derive list of all packages from each of the components needed by the app
  PKG_LIST_C674_LOCAL = $(foreach COMP,$(COMP_LIST_$(CORE)),$($(COMP)_PKG_LIST))
  
  # Defines for the app and cfg source code to know which components/packages
  # are included in the build for the local CORE...
  CFLAGS_APP_DEFINES = $(foreach PKG,$(PKG_LIST_C674_LOCAL),-D_LOCAL_$(PKG)_)
  CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_C674_LOCAL),-D_BUILD_$(PKG)_)
  
  ifeq ($(CORE),m3vpss)
    PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))
    PKG_LIST_C674_REMOTE = $(foreach COMP,$(COMP_LIST_c6xdsp),$($(COMP)_PKG_LIST))    
    CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3vpss_
  endif
  ifeq ($(CORE),m3video)
    PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))
    PKG_LIST_C674_REMOTE = $(foreach COMP,$(COMP_LIST_c6xdsp),$($(COMP)_PKG_LIST))    
    CFLAGS_APP_DEFINES += -D_LOCAL_CORE_m3video_
  endif
  ifeq ($(CORE),c6xdsp)
    PKG_LIST_M3_REMOTE = $(foreach COMP,$(COMP_LIST_m3video),$($(COMP)_PKG_LIST))
    PKG_LIST_M3_REMOTE += $(foreach COMP,$(COMP_LIST_m3vpss),$($(COMP)_PKG_LIST))
    CFLAGS_APP_DEFINES += -D_LOCAL_CORE_c6xdsp_
  endif   
  PKG_LIST_A8_REMOTE = $(foreach COMP,$(COMP_LIST_a8host),$($(COMP)_PKG_LIST))

  # Defines for the app and cfg source code to know which components/packages
  # are included in the build for the remote CORE...
  CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_REMOTE),-D_REMOTE_$(PKG)_)
  CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_M3_REMOTE),-D_BUILD_$(PKG)_)
  CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_REMOTE_$(PKG)_)
  CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_A8_REMOTE),-D_BUILD_$(PKG)_)
  CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_C674_REMOTE),-D_REMOTE_$(PKG)_)
  CFLAGS_APP_DEFINES += $(foreach PKG,$(PKG_LIST_C674_REMOTE),-D_BUILD_$(PKG)_)    
endif

CFLAGS_APP_DEFINES += -D_LOCAL_CORE_c6xdsp_

# Assemble CFLAGS from all other CFLAGS definitions
_CFLAGS = $(CFLAGS_INTERNAL) $(CFLAGS_GLOBAL_$(CORE)) $(CFLAGS_XDCINTERNAL) $(CFLAGS_LOCAL_COMMON) $(CFLAGS_LOCAL_$(CORE)) $(CFLAGS_LOCAL_$(PLATFORM)) $(CFLAGS_LOCAL_$(SOC)) $(CFLAGS_APP_DEFINES) $(CFLAGS_COMP_COMMON) $(CFLAGS_GLOBAL_$(PLATFORM))

# Object file creation
# The first $(CC) generates the dependency make files for each of the objects
# The second $(CC) compiles the source to generate object
$(OBJ_PATHS): $(OBJDIR)/%.$(OBJEXT): %.c
	$(ECHO) \# Compiling $(PLATFORM):$(CORE):$(PROFILE_$(CORE)):$(APP_NAME)$(MODULE_NAME): $<
	$(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<
	$(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<


# Archive flags - normally doesn't change
ARFLAGS = rq

# Archive/library file creation
$(LIBDIR)/$(MODULE_NAME).$(LIBEXT) : $(OBJ_PATHS) 
	$(ECHO) \#
	$(ECHO) \# Archiving $(PLATFORM):$(CORE):$(PROFILE_$(CORE)):$(MODULE_NAME)
	$(ECHO) \# Tonbo....$(LIBDIR)/$(MODULE_NAME).$(LIBEXT)
	$(ECHO) \#
	$(AR) $(ARFLAGS) $@ $(OBJ_PATHS) 

# Linker options and rules
# Treat all warnings as errors except this error => #10063-D: entry-point symbol other than "_c_int00" specified. 
# Suppress this error alone with --diag_warning option
LNKFLAGS_INTERNAL_COMMON = --emit_warnings_as_errors --diag_warning=10063-D --display_error_number --warn_sections -q --silicon_version=6740 -c  --dynamic

# Assemble Linker flags from all other LNKFLAGS definitions
_LNKFLAGS = $(LNKFLAGS_INTERNAL_COMMON) $(LNKFLAGS_INTERNAL_PROFILE) $(LNKFLAGS_GLOBAL_$(CORE)) $(LNKFLAGS_LOCAL_COMMON) $(LNKFLAGS_LOCAL_$(CORE)) 


# Path of the RTS library - normally doesn't change for a given tool-chain
RTSLIB_PATH = $(CODEGEN_PATH)/lib/rts6740$(RTSLIB_ENDIAN)$(RTSLIB_FORMAT).lib
LIB_PATHS += $(RTSLIB_PATH)  \
             $(fc_INCLUDE)/ti/sdo/fc/ecpy/lib/debug/ecpy.ae674 \
             $(dvr_rdk_PATH)/mcfw/src_bios6/alg/scd/lib/scd.ae674\
             $(dvr_rdk_PATH)/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674\
             $(dvr_rdk_PATH)/mcfw/src_bios6/alg/va/lib/vlib.ae674\
             $(dvr_rdk_PATH)/mcfw/src_bios6/alg/va/lib/analytics.ae674\
             $(rpe_PATH)/lib/lib/c674/debug/rpe.ae674\
             $(aaclcdec_PATH)/packages/ti/sdo/codecs/aaclcdec/lib/aacdec_tii_lc_elf.l64P\
             $(aaclcenc_PATH)/packages/ti/sdo/codecs/aaclcenc/lib/mp4aacenc_tij_lc_elf.l67
             
LNK_LIBS = $(addprefix -l,$(LIB_PATHS))

# Linker - to create executable file 
ifeq ($(LOCAL_APP_NAME),)
 EXE_NAME = $(BINDIR)/$(APP_NAME)_$(CORE)_$(PROFILE_$(CORE))_$(DDR_SUFFIX)_$(LINUX_SUFFIX).$(EXEEXT)
 ALG_LNKCMD = $(dvr_rdk_PATH)/mcfw/src_bios6/cfg/ti816x/link_algs.cmd
else
 ifeq ($(PROFILE_$(CORE)),whole_program_debug)
  EXE_NAME = $(BINDIR)/$(LOCAL_APP_NAME).$(EXEEXT)
  ALG_LNKCMD = $(dvr_rdk_PATH)/mcfw/src_bios6/cfg/ti816x/link_algs.cmd
 else
  EXE_NAME = $(BINDIR)/$(LOCAL_APP_NAME)_$(PROFILE_$(CORE)).$(EXEEXT)
  ALG_LNKCMD = $(dvr_rdk_PATH)/mcfw/src_bios6/cfg/ti816x/link_algs.cmd
 endif
 ALG_LNKCMD = $(dvr_rdk_PATH)/mcfw/src_bios6/cfg/ti816x/link_algs.cmd
endif

#$(EXE_NAME) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(ALG_LNKCMD) $(OBJDIR)/$(CFG_COBJ_XDC)
$(EXE_NAME) : $(OBJ_PATHS) $(LIB_PATHS) $(LNKCMD_FILE) $(ALG_LNKCMD) $(OBJDIR)/$(CFG_COBJ_XDC)
	$(ECHO) \# Linking into $(EXE_NAME) ...
	$(ECHO) \# Tonbo....$(PROFILE_$(CORE))
	$(CP) $(OBJDIR)/$(CFG_COBJ_XDC) $(CONFIGURO_DIR)/package/cfg

ifeq ($(PROFILE_$(CORE)),whole_program_debug)
	$(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) $(LNKCMD_FILE) -o $@ -m $@.map $(LNK_LIBS) $(ALG_LNKCMD)
else
	$(LNK) $(_LNKFLAGS) $(OBJ_PATHS) $(OBJDIR)/$(CFG_COBJ_XDC) $(LNKCMD_FILE) -o $@ -m $@.map $(LNK_LIBS) $(ALG_LNKCMD)
endif
	$(ECHO) \#
	$(ECHO) \# $@ created.
	$(ECHO) \#


# XDC specific - assemble XDC-Configuro command
CONFIGURO_CMD = $(xdc_PATH)/xs xdc.tools.configuro --generationOnly -o $(CONFIGURO_DIR) -t $(TARGET_XDC) -p $(PLATFORM_XDC) \
                -r $(PROFILE_$(CORE)) -b $(CONFIG_BLD_XDC_$(ISA)) --cfgArgs $(CFGARGS_XDC) $(XDC_CFG_FILE_NAME)
_XDC_GREP_STRING = \"$(XDC_GREP_STRING)\"
EGREP_CMD = $(EGREP) -ivw $(XDC_GREP_STRING) $(XDCLNKCMD_FILE)

#ifneq ($(DEST_ROOT),)
 #DEST_ROOT += /
#endif
# Invoke configuro for the rest of the components
#  NOTE: 1. String handling is having issues with various make versions when the 
#           cammand is directly tried to be given below. Hence, as a work-around, 
#           the command is re-directed to a file (shell or batch file) and then 
#           executed
#        2. The linker.cmd file generated, includes the libraries generated by
#           XDC. An egrep to search for these and omit in the .cmd file is added
#           after configuro is done
#$(CFG_CFILE_XDC) : $(XDC_CFG_FILE)
xdc_configuro : $(XDC_CFG_FILE)
	$(ECHO) \# Invoking configuro...
	$(ECHO) -e $(CONFIGURO_CMD) > $(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat
	$(CHMOD) a+x $(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat
	$(DEST_ROOT)/maketemp_configuro_cmd_$(CORE).bat
#	$(ECHO) $(EGREP_CMD) 
#	$(ECHO) $(LNKCMD_FILE)
#	$(ECHO) ***$(CFG_LNKFILENAMEPART_XDC)***
#	$(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)
#	$(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat
#	./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)
	$(EGREP_CMD) > $(LNKCMD_FILE)
#	$(EGREP) -iv "$(XDC_GREP_STRING)" $(XDCLNKCMD_FILE) > $(LNKCMD_FILE)
	$(ECHO) \# Configuro done!

$(LNKCMD_FILE) :
#	$(CP) $(XDCLNKCMD_FILE) $(LNKCMD_FILE)
#	$(ECHO) @ $(EGREP_CMD) > maketemp_egrep_cmd.bat
#	./maketemp_egrep_cmd.bat | $(CYGWINPATH)/bin/tail -n+3 > $(LNKCMD_FILE)
#	$(EGREP_CMD) > $(LNKCMD_FILE)
 
ifndef MODULE_NAME
$(OBJDIR)/$(CFG_COBJ_XDC) : $(CFG_C_XDC)
	$(ECHO) \# Compiling generated $(CFG_COBJ_XDC)
	$(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)
	$(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $(CFG_C_XDC)
endif

# Include dependency make files that were generated by $(CC)
-include $(SRCS:%.c=$(DEPDIR)/%.P) 

# Nothing beyond this point

#   ----------------------------------------------------------------------------
#  @file   Makefile
#
#  @path   
#
#  @desc   Makefile for VideoStab DSP (Debug and Release versions)
#
#  @ver    1.10
#   ----------------------------------------------------------------------------
#  Copyright (c) Texas Instruments Incorporated 2002-2009
#
#  Use of this software is controlled by the terms and conditions found in the
#  license agreement under which this software has been supplied or provided.
#   ----------------------------------------------------------------------------
SHELL = /bin/sh

CSWITCH_FORMAT = --abi=elfabi
dvr_rdk_PATH=/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk

#   ----------------------------------------------------------------------------
#   Base for TI toolchain
#   This may change depending if you are using other versions of the compiler
#   ----------------------------------------------------------------------------
TI_SW_ROOT=/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools
CODEGEN_PATH_DSP=$(TI_SW_ROOT)/cgt_dsp/cgt6x_7_3_5
RTSLIB_PATH = $(TI_SW_ROOT)/cgt_dsp/cgt6x_7_3_5/lib
BIOS=$(TI_SW_ROOT)/bios/bios_6_33_05_46
HDVPSS=$(TI_SW_ROOT)/hdvpss/dvr_rdk_hdvpss
EDMA=$(TI_SW_ROOT)/edma3lld/edma3_lld_02_11_06_01
IPC=$(TI_SW_ROOT)/ipc/ipc_1_24_03_32
XDIAS=$(TI_SW_ROOT)/xdais/xdais_7_22_00_03
DSKT=$(TI_SW_ROOT)/framework_components/framework_components_3_22_02_08_patched

#			 -I$(BIOS)/packages \
#			 -I$(HDVPSS)/packages \
#			 -I$(EDMA)/packages \
#  		 -I$(IPC)/packages \
#			 -I$(XDIAS)/packages \
#			 -I$(DSKT)/packages \
#			 -I$(TI_SW_ROOT)/xdc/xdctools_3_23_03_53/packages \

INCLUDE = -I$(CODEGEN_PATH_DSP)/include \
			 -I$(dvr_rdk_PATH)/mcfw/src_bios6/utils \
			 -I$(dvr_rdk_PATH)/mcfw/src_bios6/links_c6xdsp/system \
			 -I$(dvr_rdk_PATH)/mcfw/interfaces/link_api \
			 -I$(dvr_rdk_PATH)/mcfw/src_bios6/alg/va \
			 -I$(dvr_rdk_PATH)

ALGO_SRC_PATH := ./
ALGO_ASM_PATH := 64x+_asm

#   ----------------------------------------------------------------------------
#   Name of the TI compiler and DSP/BIOS builder (Tconf)
#   This usually does not change
#   ----------------------------------------------------------------------------
CC := $(CODEGEN_PATH_DSP)/bin/cl6x
AR := $(CODEGEN_PATH_DSP)/bin/ar6x
LNK := $(CODEGEN_PATH_DSP)/bin/lnk6x

#   ----------------------------------------------------------------------------
#   Project name. 
#   This variable can be used to set all source/BIOS/object filenames
#   For clarity, in this example it sets only the .OUT .CMD and .MAP filenames
#   ----------------------------------------------------------------------------
PROJNAME := tiva

#   ----------------------------------------------------------------------------
#   Global variables for building VideoStab DSP
#   Note that common debug, compiler and linker flags are already
#   set in the lower part of this Makefile
#   CSRCS are for C-source files, ASRCS for asm and BIOSTCF is the BIOS TCF file
#   ----------------------------------------------------------------------------

ALG_SRC_FILES := stablib.c libutil.c pyramid_api.c pyramid_hor.c pyramid_hor_c.c pyramid_ver.c pyramid_ver_c.c compute_motion.c  warping.c kalman.c matrix.c svd.c profile.c
#replicate_row_col.sa warp_cbcr_semiplanar.sa warp_cbcr_semiplanar_fill.sa
ALG_SASRC_FILES := decimate_hor4.sa decimate_ver4.sa filter_hor_asm.sa filter_ver_asm.sa generate_iy_asm.sa warp_border.sa  warp_border_fill.sa
ALG_ASMSRC_FILES := sub2d8_asm.asm sub2d8u_asm.asm generate_ix_asm.asm

ALG_CSRCS := $(ALG_SRC_FILES:%.c=$(ALGO_SRC_PATH)/%.c)
ALG_SASRC := $(ALG_SASRC_FILES:%.sa=$(ALGO_ASM_PATH)/%.sa)
ALG_ASMSRC := $(ALG_ASMSRC_FILES:%.asm=$(ALGO_ASM_PATH)/%.asm)

ASRCS := 
BIOSTCF := 
OBJS :=
LIBS := -l$(RTSLIB_PATH)/rts6740_elf.lib
CMDS := $(PROJNAME).cmd
MAPFILE := $(PROJNAME).map
BIN := $(PROJNAME).ae674

#   ----------------------------------------------------------------------------
#   All common compiler and linker flags
#   ----------------------------------------------------------------------------
#-ml3 -pdr -pdv -pden
ALL_CFLAGS := -q -mv6740 -pdsw225 $(CSWITCH_FORMAT) $(CFLAGS)
ALL_LDFLAGS := -z -c -qq -mo -q -x --diag_warning=10063-D $(LDFLAGS)

#   ----------------------------------------------------------------------------
#   Compiler and Linker options for Release
#   ----------------------------------------------------------------------------
#-k -mw -on2
#--trampolines
# -os3 
CFLAGS_R := -o3 -pm -op0 -mt -mh -mo -oi $(ALL_CFLAGS)
OBJDIR_R := obj
BINDIR_R := lib
#OBJS_R := $(CSRCS:%.c=$(OBJDIR_R)/%.obj) $(ASRCS:%.s62=$(OBJDIR_R)/%.obj)
ALG_OBJS_R := $(ALG_CSRCS:%.c=$(OBJDIR_R)/%.obj) $(ALG_SASRC:%.sa=$(OBJDIR_R)/%.obj) $(ALG_ASMSRC:%.asm=$(OBJDIR_R)/%.obj)
ALG_OBJS_NAMES_R := $(ALG_SRC_FILES:%.c=$(OBJDIR_R)/%.obj) $(ALG_SASRC_FILES:%.sa=$(OBJDIR_R)/%.obj) $(ALG_ASMSRC_FILES:%.asm=$(OBJDIR_R)/%.obj)

LIBS_R := $(LIBS)
MAPFILE_R := $(OBJDIR_R)/$(MAPFILE)
DEFS_R	:= 

#   ----------------------------------------------------------------------------
#   Compiler common symbol definitions 
#   ----------------------------------------------------------------------------
#	       -d"COMPLETE_C"			 \
DEFS :=   -d"CORR"				 \
			 -DTI_814X_BUILD

#   ----------------------------------------------------------------------------
#   Building Release... 
#   ----------------------------------------------------------------------------
$(BINDIR_R)/$(BIN) : $(ALG_OBJS_NAMES_R) 
	@echo Compiling Release...	
	$(AR)	rq $@ $(ALG_OBJS_NAMES_R) 

#@$(CC) $(ALL_LDFLAGS) $(LDINCLUDES_R) -o$@ $(ALG_OBJS_NAMES_R) -m$(MAPFILE_R) $(LIBS_R)

$(OBJDIR_R)/%.obj : %.c
	@echo \ #Compiling .c
	@$(CC) $(DEFS) $(CFLAGS_R) $(INCLUDE) -fr$(OBJDIR_R) $<

$(OBJDIR_R)/%.obj : %.asm
	@echo \ #Compiling .asm...
	@$(CC) $(DEFS) $(ALL_CFLAGS) -fr$(OBJDIR_R) $<

$(OBJDIR_R)/%.obj : %.sa
	@echo \ #Compiling .sa...
	@$(CC) $(DEFS) $(CFLAGS_R) -fr$(OBJDIR_R) $<

clean:
	@rm -f $(BINDIR_R)/*
	@rm -f $(OBJDIR_R)/*
	@rm -f *~

Looking for valuable inputs.

  • What is the linker error you are seeing. What is the name of the function in linear assembly ? Attach the generated map file

  • Hi Badri,

    Am getting the error as "undefined symbol" for all the assembly files, example "decimate_hor4_asm".

    expected "dvr_rdk_c6xdsp_release_1024M_384M.xe674.map" is not generated

    I have attached the error.log

    make -C ./makerules -fbuild_hdvpss.mk hdvpss
    make[1]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/makerules'
    make -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/vps  CORE=m3vpss HDVENC_OUTPUT_SWAP=0
    make[2]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/vps'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/vps'
    make -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/i2c  CORE=m3vpss
    make[2]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/i2c'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/i2c'
    make -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/devices  CORE=m3vpss
    make[2]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/devices'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/devices'
    make -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/platforms  CORE=m3vpss
    make[2]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/platforms'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/platforms'
    make -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/proxyServer  CORE=m3vpss
    make[2]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/proxyServer'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/proxyServer'
    make[1]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/makerules'
    make -fMAKEFILE.MK -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6 
    make[1]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6'
    make -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6 CORE=c6xdsp ENABLE_FXN_PROFILE=false
    make[2]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6'
    make -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6 CORE=m3vpss ENABLE_FXN_PROFILE=false
    make[2]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6'
    make -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6 CORE=m3video
    make[2]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6'
    make -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/main_app xdc_configuro CORE=c6xdsp ENABLE_FXN_PROFILE=false
    make[2]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6/main_app'
    # Invoking configuro...
    /bin/chmod a+x /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/maketemp_configuro_cmd_c6xdsp.bat
    /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/maketemp_configuro_cmd_c6xdsp.bat
    /bin/egrep -ivw MAIN_APP_c6xdsp_pe674.oe674  /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/obj/ti814x-evm/c6xdsp/release/dvr_rdk_configuro/package/cfg/MAIN_APP_c6xdsp_pe674.xdl > /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/obj/ti814x-evm/c6xdsp/release/dvr_rdk_configuro/linker_mod.cmd
    # Configuro done!
    make[2]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6/main_app'
    make -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/main_app all CORE=c6xdsp
    make[2]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6/main_app'
    # Making ti814x-evm:c6xdsp:release:dvr_rdk_bios6...
    make -C /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6
    make[3]: Entering directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6'
    make[3]: Nothing to be done for `all'.
    make[3]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6'
    # Linking into /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti814x-evm/dvr_rdk_c6xdsp_release_1024M_384M.xe674 ...
    # Tonbo....release
    /bin/cp /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/obj/ti814x-evm/c6xdsp/release/MAIN_APP_c6xdsp_pe674.oe674 /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/obj/ti814x-evm/c6xdsp/release/dvr_rdk_configuro/package/cfg
    /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../ti_tools/cgt_dsp/cgt6x_7_3_5//bin/lnk6x -w --emit_warnings_as_errors --diag_warning=10063-D --display_error_number --warn_sections -q --silicon_version=6740 -c  --dynamic -o2 -x --zero_init=off --retain=_Ipc_ResetVector     /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/obj/ti814x-evm/c6xdsp/release/main_c6xdsp.oe674 /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/obj/ti814x-evm/c6xdsp/release/MAIN_APP_c6xdsp_pe674.oe674 /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/obj/ti814x-evm/c6xdsp/release/dvr_rdk_configuro/linker_mod.cmd -o /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti814x-evm/dvr_rdk_c6xdsp_release_1024M_384M.xe674 -m /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti814x-evm/dvr_rdk_c6xdsp_release_1024M_384M.xe674.map -l/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/mcfw/src_bios6/lib/ti814x-evm/c6xdsp/release/dvr_rdk_bios6.ae674 -l/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../ti_tools/cgt_dsp/cgt6x_7_3_5//lib/rts6740_elf.lib -l/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../ti_tools/framework_components/framework_components_3_22_02_08_patched/packages/ti/sdo/fc/ecpy/lib/debug/ecpy.ae674 -l/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/alg/scd/lib/scd.ae674 -l/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674 -l/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/alg/va/lib/vlib.ae674 -l/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/alg/va/lib/analytics.ae674 -l/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../ti_tools/rpe/remote-processor-execute/lib/lib/c674/debug/rpe.ae674 -l/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../ti_tools/codecs/c674x_aaclcdec_01_41_00_00_elf/packages/ti/sdo/codecs/aaclcdec/lib/aacdec_tii_lc_elf.l64P -l/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../ti_tools/codecs/c674x_aaclcenc_01_00_01_00_elf_patched/packages/ti/sdo/codecs/aaclcenc/lib/mp4aacenc_tij_lc_elf.l67 /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/cfg/ti816x/link_algs.cmd
    
     undefined            first referenced                                                                                                                                             
      symbol                  in file                                                                                                                                                  
     ---------            ----------------                                                                                                                                             
     decimate_hor4_asm    /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<pyramid_hor.obj>
     decimate_ver4_asm    /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<pyramid_ver.obj>
     filter_hor_asm       /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<libutil.obj>    
     filter_ver_asm       /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<libutil.obj>    
     generate_ix_asm      /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<libutil.obj>    
     generate_iy_asm      /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<libutil.obj>    
     replicate_col_asm    /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<warping.obj>    
     replicate_row_asm    /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<warping.obj>    
     sub2d8_asm           /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<libutil.obj>    
     sub2d8u_asm          /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<libutil.obj>    
     warp2d_motion8u_asm  /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<warping.obj>    
     warp2d_motion8u_fill /home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/tiva/lib/tiva.ae674<warping.obj>    
    
    error #10234-D: unresolved symbols remain
    warning #10063-D: entry-point symbol other than "_c_int00" specified:
       "ti_sysbios_family_c64p_Hwi0"
    error #10010: errors encountered during linking;
       "/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/..
       /dvr_rdk/build/dvr_rdk/bin/ti814x-evm/dvr_rdk_c6xdsp_release_1024M_384M.xe67
       4" not built
    make[2]: *** [/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti814x-evm/dvr_rdk_c6xdsp_release_1024M_384M.xe674] Error 1
    make[2]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6/main_app'
    make[1]: *** [apps] Error 2
    make[1]: Leaving directory `/home/nandish/tonbo/dm8148/VPU/ais/DVRDKBuild/DVRRDK_03.50.00.05/dvr_rdk/mcfw/src_bios6'
    make: *** [dvr_rdk_bios6] Error 2
    
    

  • Can you check if any map file is present under /dvr_rdk/build/.

  • yes, it was available at dvr_rdk/build/dvr_rdk/bin/ti814x-evm/dvr_rdk_c6xdsp_release_1024M_384M.xe674.map

    0207.dvr_rdk_c6xdsp_release_1024M_384M.xe674.map.txt

  • Are you appending leading _ to assembly function names in your linear assembly implementation. For elf format you should not do that.That may cause undefined symbol errors.

  • Thanks Badri,

    I just renamed the function names, ex: "_sub2d8_asm" to "sub2d8_asm"

    Is this been documented in any of the TI documents about "elf format", if so could you please share it.