Hi, I am currently using syslink_2_21_03_11 example 4, the exact file name is ex04_sharedregion.
This concerns the DSP portion of this example. I have made modifications to the Server.c file in order to implement additional code written in c++, so what I did is added extern "C" infront of all the originating C functions, and added the calls to my c++ functions and changed the filename to Server.cpp. Now the problem is, I don't know how to modify the makefile in order for this to compile. Here is the makefile (the only thing I changed is Server.c to Server.cpp):
#
# ======== makefile ========
#
EXBASE = ..
include ../products.mak
srcs = main_dsp.c Server.cpp
objs = $(addprefix bin/$(PROFILE)/obj/,$(patsubst %.c,%.oe674,$(srcs)))
libs = configuro/linker.cmd
all: configuro/linker.cmd
$(MAKE) PROFILE=debug server_dsp.x
$(MAKE) PROFILE=release server_dsp.x
server_dsp.x: bin/$(PROFILE)/server_dsp.xe674
bin/$(PROFILE)/server_dsp.xe674: $(objs) $(libs)
@$(ECHO) "#"
@$(ECHO) "# Making $@ ..."
$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
bin/$(PROFILE)/obj/%.oe674: %.h
bin/$(PROFILE)/obj/%.oe674: %.c
@$(ECHO) "#"
@$(ECHO) "# Making $@ ..."
$(CC) $(CPPFLAGS) $(CFLAGS) --output_file=$@ -fc $<
configuro/linker.cmd: Dsp.cfg ../shared/config.bld
@$(ECHO) "#"
@$(ECHO) "# Making $@ ..."
$(XDC_INSTALL_DIR)/xs --xdcpath="$(subst +,;,$(PKGPATH))" \
xdc.tools.configuro -o configuro \
-t ti.targets.elf.C674 -c $(CGT_C674_ELF_INSTALL_DIR) \
-p ti.platforms.evmOMAPL138:dsp -b ../shared/config.bld \
-r release Dsp.cfg
install:
@$(ECHO) "#"
@$(ECHO) "# Making $@ ..."
@$(MKDIR) $(EXEC_DIR)/debug
$(CP) bin/debug/server_dsp.xe674 $(EXEC_DIR)/debug
@$(MKDIR) $(EXEC_DIR)/release
$(CP) bin/release/server_dsp.xe674 $(EXEC_DIR)/release
help:
@$(ECHO) "make # build executable"
@$(ECHO) "make clean # clean everything"
clean::
$(RMDIR) configuro bin
PKGPATH := $(SYSLINK_INSTALL_DIR)/packages
PKGPATH := $(PKGPATH)+$(BIOS_INSTALL_DIR)/packages
PKGPATH := $(PKGPATH)+$(IPC_INSTALL_DIR)/packages
PKGPATH := $(PKGPATH)+$(XDC_INSTALL_DIR)/packages
# ======== install validation ========
ifeq (install,$(MAKECMDGOALS))
ifeq (,$(EXEC_DIR))
$(error must specify EXEC_DIR)
endif
endif
# ======== toolchain macros ========
CGTOOLS = $(CGT_C674_ELF_INSTALL_DIR)
CC = $(CGTOOLS)/bin/cl6x -c
AR = $(CGTOOLS)/bin/ar6x rq
LD = $(CGTOOLS)/bin/lnk6x --abi=eabi
ST = $(CGTOOLS)/bin/strip6x
CPPFLAGS =
CFLAGS = -qq $(CCPROFILE_$(PROFILE)) -I. $(COMPILER_OPTS)
LDFLAGS = -w -q -c -m $(@D)/obj/$(@F).map
LDLIBS = -l $(CGTOOLS)/lib/rts6740_elf.lib
CCPROFILE_debug = -D_DEBUG_=1 --symdebug:dwarf
CCPROFILE_release = -O2
COMPILER_OPTS = $(shell cat configuro/compiler.opt)
# ======== standard macros ========
ifneq (,$(wildcard $(XDC_INSTALL_DIR)/bin/echo.exe))
# use these on Windows
CP = $(XDC_INSTALL_DIR)/bin/cp
ECHO = $(XDC_INSTALL_DIR)/bin/echo
MKDIR = $(XDC_INSTALL_DIR)/bin/mkdir -p
RM = $(XDC_INSTALL_DIR)/bin/rm -f
RMDIR = $(XDC_INSTALL_DIR)/bin/rm -rf
else
# use these on Linux
CP = cp
ECHO = echo
MKDIR = mkdir -p
RM = rm -f
RMDIR = rm -rf
endif
# ======== create output directories ========
ifneq (clean,$(MAKECMDGOALS))
ifneq (,$(PROFILE))
ifeq (,$(wildcard bin/$(PROFILE)/obj))
$(shell $(MKDIR) -p bin/$(PROFILE)/obj)
endif
endif
endif