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.

[参考译文] CCS/OMAP-L138:构建问题与"call_DSPLib"DSPLib_v12中的示例

Guru**** 2551110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/607081/ccs-omap-l138-building-problem-with-call_dsplib-example-from-dsplib_v12

器件型号:OMAP-L138
Thread 中讨论的其他器件:OMAPL138

工具/软件:Code Composer Studio

您好!

我正在使用 Critical Link 的 MityDSP OMAP-L138F。  

我已从 TI 网站下载"dsplib_v12"。 已成功执行以下步骤:

生成-f arm_makefile

之后、我尝试执行以下操作:

使-f dsp_makefile

我遇到以下错误:

andriharyono@pi-computer:~/Downloads/example/call_dsplib make -f dsp_makefile
正在编译调试...

未定义的首次引用
符号
------ --------
_SetReason Debug/DSP_main.obj

错误:未解析的符号仍然存在
错误:链接期间遇到错误;未构建"Debug/DSPLib_server.out"

>>编译失败
DSP_makefile:201:目标'Debug/DSPLib_server.out'的配方失败
make:***[Debug/DSPLib_server.out]错误1.

我使用 CCS v5编译了代码、其中包含 dsplink_linux_1_65_00_03和 DSPLib_3_1_0_0。

如何纠正此错误?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您是否安装了 mcsdk 的完整版本?
    在运行 make 之前、您是如何设置环境的?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yordan、您好!

    感谢你的答复。 我已完全安装 MCSDK、我们将使用 CCS v 5.5.0。

    这里是 DSP_makefile

    编号-------------------------------------------------------------
    # DSP_makefile
    编号
    DSPLIB_server.out 的# Makefile (调试和发布版本)
    编号
    # v1.00
    编号-------------------------------------------------------------
    #版权所有(c)德州仪器(TI)公司2002-2009
    编号
    #此软件的使用由中的条款和条件控制
    #提供或提供此软件的许可协议。
    编号-------------------------------------------------------------
    #shell =/bin/sh

    编号-------------------------------------------------------------
    # TI 工具链基础
    #这可能会发生变化、具体取决于您是否使用编译器的其他版本
    编号-------------------------------------------------------------
    base_toolchain:=/opt/ti
    base_Compiler:=$(base_toolchain)/ccsv5/tools/compiler/C6000_7.4.4
    base_SABIOS:=$(base_toolchain)/BIOS_5_42_01_09

    编号-------------------------------------------------------------
    TI 编译器和 DSP/BIOS 构建器的名称(Tconf)
    #这通常不会改变
    编号-------------------------------------------------------------
    cc:= cl6x
    tconf:= tconf

    编号-------------------------------------------------------------
    DSPLink 的# Base
    #根据您的安装路径,可能需要更改此项
    和 DSPLink 版本
    编号-------------------------------------------------------------
    DSPLINK:=/home/andriharyono/MDK_2014-01-13/sw/3rdparty/dsplink_linux_1_65_00_03/dsplink

    编号-------------------------------------------------------------
    #底座表示 DSPLIB
    #根据您的安装路径,可能需要更改此项
    和 DSPLIB 版本
    编号-------------------------------------------------------------
    DSPLIB:=/home/andriharyono/Downloads/example/call_dsplib/lib

    ===========================================================================================================================================================
    #此行下面不需要任何更改!
    ===========================================================================================================================================================

    编号-------------------------------------------------------------
    #项目名称。
    #此变量可用于设置所有源文件名/BIOS/对象文件名
    #为清楚起见、在此示例中、它仅设置.out .cmd 和.map 文件名
    编号-------------------------------------------------------------
    ProjName:= DSPLIB_server

    编号-------------------------------------------------------------
    #用于构建 helloDSP 的全局变量
    #请注意、常见的调试、编译器和链接器标志已经存在
    此 Makefile 的下部设置的#
    # CSRCS 用于 C 源文件、ASR ASRCS 用于 ASM、BIOSTCF 是 BIOS TCF 文件
    编号-------------------------------------------------------------
    调试:=
    CFLAGS:=-I$(DSPLIB)
    LDFLAGS:=-i$(DSPLIB)
    CSRCS:= dsp_main.c dsp_interface.c
    ASRCS:=
    BIOSTCF:= dsplib_server.tcf
    OBJS:=
    libs:=-ldsplink.lib -ldsplinkpool.lib -ldsplinkmpcs.lib -ldsplinkmplist.lib -ldsplinkmsg.lib -ldsplinknotife.lib -ldsplinkringio.lib -ldsplib674x.lib -ldsplinkdata.lib
    CMDS:=$(ProjName).cmd
    mapfile:=$(ProjName).map
    bin:=$(ProjName).out

    编号-------------------------------------------------------------
    # DSP/BIOS 生成的文件
    编号-------------------------------------------------------------
    BIOSSRC:=$(BIOSTCF:%-cfg.s62)$(BIOSTCF:%-cfg_c.c)
    BIOSCMD:=$(BIOSTCF:%-tcf=%cfg.cmd)

    编号-------------------------------------------------------------
    #将 DSP/BIOS 生成的文件添加到源代码和链接器变量
    编号-------------------------------------------------------------
    CSRCS +=$(BIOSTCF:%-tcf=%cfg_c.c)
    ASRCS +=$(BIOSTCF:%.tcf=%cfg.s62)
    CMDS +=$(BIOSCMD)

    编号-------------------------------------------------------------
    # DSP/BIOS 通用标志
    编号-------------------------------------------------------------
    BFLAGS:=-dconfig.importPath="$(base_SABIOS)/packages;\
    $(BASE_SABIOS)/packages/ti/bios;\
    $(DSPLINK)/dsp/inc/DspBios;\
    $(DSPLINK)/dsp/inc/DspBios/5.XX/OMAPL138GEM;\
    $(DSPLINK)/dsp/inc/DspBios/5.XX;/"
    仅限# BIOS 6
    #-i$(DSPLINK)/dsp/inc/DspBios/6.XX/DA8XXGEM

    编号-------------------------------------------------------------
    #所有通用编译器和链接器标志
    编号-------------------------------------------------------------
    ALL_CFLAGS:=-q -PDR -PDV -pden -ml3 -mv6400+-禁用:sploop $(CFLAGS)
    all_LDFLAGS:=-z -c -q -x $(LDFLAGS)

    编号-------------------------------------------------------------
    用于调试的#编译器和链接器选项
    编号-------------------------------------------------------------
    CFLAGS_D:=-g -d"_debug"--no_compress $(debug)$(ALL_CFLAGS)
    OBJDIR_D:=调试
    BINDIR_D:=$(OBJDIR_D)
    OBJS_D:=$(CSRCS:%.c=$(OBJDIR_D)/%.obj)$(ASRCS:%.s62=$(OBJDIR_D)/%.obj)
    libs_D:=$(libs)
    mapfile_D:=$(OBJDIR_D)/$(mapfile)

    编号-------------------------------------------------------------
    版本的#编译器和链接器选项
    编号-------------------------------------------------------------
    CFLAGS_R:=-o3 $(ALL_CFLAGS)
    OBJDIR_R:=发布
    BINDIR_R:=$(OBJDIR_R)
    OBJS_R:=$(CSRCS:%.c=$(OBJDIR_R)/%.obj)$(ASRCS:%.s62=$(OBJDIR_R)/%.obj)
    libs_R:=$(libs)
    mapfile_R:=$(OBJDIR_)/$(mapfile)

    编号-------------------------------------------------------------
    #编译器通用包含目录
    编号-------------------------------------------------------------
    CINCLUDES:=-I$(DSPLINK)/dsp/inc \
    -i$(DSPLINK)/dsp/inc/DspBios \
    -i$(DSPLINK)/dsp/inc/DspBios/5.XX \
    -i$(DSPLINK)/dsp/inc/DspBios/5.XX/OMAPL138GEM \
    -i$(DSPLINK)/dsp/inc/C64XX \
    -i$(base_SABIOS)/packages/ti/bios/include \
    -i$(base_Compiler)/include \
    -i$(base_SABIOS)/packages/ti/rtdx/include/c6000 \
    -i$(base_SABIOS)/packages/ti/psl/include \
    -i$(DSPLINK)/dsp/export/INCLUDE/DspBios/OMAPL138 \
    一./

    编号-------------------------------------------------------------
    #编译器通用符号定义
    编号-------------------------------------------------------------
    Defs:=-dMAX_DSP=1 \
    -dMAX_processors=2 \
    -DID GPP=1 \
    -dOMAPL138 \
    -dPROC_component \
    -dPOOL_component \
    -dNOTIFY_component \
    -dMSPC_component \
    -dRINGIO_component \
    -dMPLIST_component \
    -dMSGQ_component \
    -dMSGQ_ZCPY_LINK \
    -dCHNL_COMPONENT \
    -dCHNL_ZCPY_LINK \
    -dZCPY_LINK \
    -dPROCID=0 \
    -dDA8XXGEM \
    -DOS_Linux \
    -dDA8XXGEM_interface=SHMEM_interface \
    -dPHYINTERFACE=SHMEM_INTERFACE

    编号-------------------------------------------------------------
    #链接器公共库搜索路径
    编号-------------------------------------------------------------
    LDINCLUDES:=-i$(base_Compiler)/lib \
    -i$(base_SABIOS)/packages/ti/bios/lib \
    -i$(base_SABIOS)/packages/ti/rtdx/lib/c6000 \
    -i$(base_SABIOS)/packages/ti/psl/lib

    编号-------------------------------------------------------------
    #用于调试的链接器库搜索路径
    编号-------------------------------------------------------------
    LDINCLUDES_D:=$(LDINCLUDES)-I$(DSPLINK)/dsp/export/BIN/DspBios/OMAPL138/OMAPL138GEM_0/DEBUG

    编号-------------------------------------------------------------
    #链接器库发布搜索路径
    编号-------------------------------------------------------------
    LDINCLUDES_R:=$(LDINCLUDES)-I$(DSPLINK)/dsp/export/BIN/DspBios/OMAPL138/OMAPL138GEM_0/RELEASE

    编号-------------------------------------------------------------
    #编译器和链接器过程
    #从这一点开始、更改的可能性极小。
    #-如果更改链接器对象和库文件的顺序、请小心
    #- DSP/BIOS TCONF 构建需要先于其他所有内容
    #-清理规则还会删除所有 DSP/BIOS 生成的文件
    编号-------------------------------------------------------------
    交响乐:全部
    所有:$(BIOSRC)调试版本

    $(BIOSSRC):$(BIOSTCF)
    @echo building DSP/BIOS 文件...
    @$(base_SABIOS)/xdctools/$(TCONF)$(BFLAGS)< 0

    编号-------------------------------------------------------------
    #正在生成调试...
    编号-------------------------------------------------------------
    交响乐:调试
    调试:$(BINDIR_D)/$(二进制)

    $(BINDIR_D)/$(二进制):$(OBJS_D)
    @echo 编译调试...
    @(base_Compiler)/bin/$(CC)$(All_LDFLAGS)$(LDINCLUDES_D)-o$@$? $(libs_D)-m$(mapfile_D)$(CMDS)

    $(OBJDIR_D)/%.obj:%.c.
    @(base_Compiler)/bin/$(CC)$(ALL_DEBUG)$(Defs)$(CFLAGS_D)$(CINCLUDES)-fr$(OBJDIR_D)$<

    $(OBJDIR_D)/%.obj:%.s62
    @(base_Compiler)/bin/$(CC)$(ALL_DEBUG)$(Defs)$(CFLAGS_D)$(CINCLUDES)-fr$(OBJDIR_D)$<

    编号-------------------------------------------------------------
    #建筑版本...
    编号-------------------------------------------------------------
    交响乐:发布
    发布:$(BINDIR_R)/$(二进制)

    $(BINDIR_R)/$(二进制):$(OBJS_R)
    @echo 编译发行版...
    @(base_Compiler)/bin/$(CC)$(All_LDFLAGS)$(LDINCLUDES_R)-o$@$? $(libs_R)-m$(mapfile_R)$(CMDS)

    $(OBJDIR_%.obj:%.c.
    @(base_Compiler)/bin/$(CC)$(Defs)$(CFLAGS_R)$(CINCLUDES)-fr$(OBJDIR_R)$<

    $(OBJDIR_%.obj:%.s62
    @(base_Compiler)/bin/$(CC)$(Defs)$(CFLAGS_R)$(CINCLUDES)-fr$(OBJDIR_R)$<

    交响乐:干净
    清理:
    @rm -f *。cdb
    @rm -f *cfg.*
    @rm -f * cfg_c*
    @rm -f ./$(OBJDIR_D)/*
    @rm -f ./$(OBJDIR_*)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您已设置 base_toolchain:=/opt/ti
    您能否验证/opt/ti?中是否具有 ccsv5/tools/compiler/C6000_7.4.4和 BIOS_5_42_01_09

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、我都有。