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/TMS320C6678:没有为...定义符号

Guru**** 2614265 points
Other Parts Discussed in Thread: TMS320C6678

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/579667/ccs-tms320c6678-no-symbol-are-defined-for

器件型号:TMS320C6678

工具/软件:Code Composer Studio

大家好、

我们有一个包含 4个 TMS320C6678的板。

我正在 dsp2上运行一段代码,该代码通过 SRIO 和 EMAC 与 dsp1通信。

我在没有断点的情况下运行代码以测试和验证稳定性,当 我人为地停止并观察时,发现显示了一条消息(如图所示 )

“没有为0xF02ED872定义符号”,但程序可以继续运行,看起来正常

问题出在哪里以及到底是什么? 我正在使用 CCS 5.5.0

提前感谢您的工作

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

    我已通知软件专家。 他们的反馈将在此处发布。

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

    您是否有在 C66xx_core8上运行的二进制文件的映射文件。 您能否检查代码的哪个部分位于0xF02ED872位置?

    谁正在加载 DSP 内核? 是使用仿真器加载它们、还是 由主内核加载它们。  

    是所有内核运行相同的应用二进制文件、还是运行独立的.out 文件。  

     CCS 中未定义任何符号意味着 CCS IDE 无法将特定存储器段中的汇编代码与搜索路径中的任何符号或代码相关联。 如果内核正由其他一些内核或主机加载、则需要转到"Run"->"Load Program"->"Add Symbols"并加载该文件、以查看 DDR 存储器中该位置的符号。

    此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    该问题似乎是由程序从中断例程返回时容易出现问题的中断引起的。
    中断注册使用以下方法:

    ;为 C6000 DSP 创建中断矢量表
    ;----------------------------------------------------
    ;可以修改此文件以添加中断服务例程(Interrupt Service routine, ISR)
    ;对于中断,步骤为:
    ;1,对外部定义的 ISR 的引用,例如
    ;.ref EDMA_ISR
    ;2,修改中断矢量表中的相应条目。
    ;例如,如果 EDMA 使用中断8,则应该这样做
    ;修改条目8如下所示:
    ;vec_entry EDMA_ISR;中断8
    ;----------------------------------------------------
    ;作者:Brighton Feng
    ;创建于2010-12-6.
    ;----------------------------------------------------

    ;对外部定义的 ISR 的引用
    .ref _c_int00
    .ref GE_Message_ISR
    .ref SRIO_ISR
    .ref 异常服务例程
    .ref nested_exception_service_routine
    .ref 异常记录
    全局矢量

    ;----------------------------------------------------
    .sect ".text"
    ;为 NMI 创建中断向量
    NMI_ISR:
    STWB1、*- B15[1]

    ;发生异常时保存一些密钥寄存器
    MVKL 例外记录、B1
    MVKH 异常记录、B1

    STWB3、*+ B1[0]
    STWA4、*+ B1[1]
    STWB4、*+ B1[2]
    STWB14、*+ B1[3]
    STWB15、*+ B1[4]

    ;跳转至异常服务例程
    MVKL异常服务例程、B1
    MVKH异常服务例程、B1
    bB1

    LDW*- B15[1]、B1
    NOP4.

    ;----------------------------------------------------
    ;为复位创建中断向量(中断0)
    vec_reset .macro addr
    MVKL 地址、B0
    MVKH 地址、B0
    B B0
    MVC PCE1、B0
    NOP 4.
    .align 32.
    endm

    ;为其它使用的中断创建中断向量
    vec_entry .macro addr
    STW B0、*- B15
    MVKL 地址、B0
    MVKH 地址、B0
    B B0
    LDW *B15++,B0
    NOP 4.
    .align 32.
    endm

    ;为未使用的中断创建中断向量
    vec_dummy .macro
    未使用_int?:
    b 未使用_int? ;未使用中断的死循环
    NOP 5.
    .align 32.
    endm


    ;----------------------------------------------------
    ;中断矢量表
    .sect "vecs"
    .align 1024

    向量:
    vec_reset nested_exception_service_routine;嵌套异常
    VEC_Entry NMI_ISR;NMI/异常
    vec_dummy;RSVD
    vec_dummy;RSVD
    vec_entry GE_Message_ISR;中断4.
    VEC_Entry SRIO_ISR ;中断5
    vec_dummy;中断6.
    vec_dummy;中断7
    vec_dummy;中断8
    vec_dummy;中断9.
    vec_dummy;中断10
    vec_dummy;中断11
    vec_dummy;中断12
    vec_dummy;中断13.
    vec_dummy;中断14
    vec_dummy;中断15

    .end

    我更改了中断注册的方式、使用 CSL 库函数作为跟后、程序运行稳定

    寄存器中断(48、CSL_INTC_VECTID_4、&GE_Message_ISR);
    寄存器中断(20、CSL_INTC_VECTID_5、&SRIO_ISR);

    int32_t 寄存器中断(uint32_t 事件、uint32_t 矢量、cSL_IntcEventHandler ISR)

    hintc[矢量]= CSL_intcOpen (&intcObj[矢量],事件,(CSL_IntcParam*)&vector,NULL);
    if (hintc[矢量]== NULL)

    printf ("错误:gem - intc 打开失败\n");
    返回-1;


    /*注册在事件发生时调用的回调处理程序。 *
    EventRecord.handler = ISR;
    EventRecord.arg = 0;
    if (CSL_intcPlugEventHandler (hintc[vector]、&EventRecord)!= CSL_Sok)

    printf ("错误:gem-intc 插头事件处理程序失败\n");
    返回-1;


    /*清除事件。 *
    if (CSL_intcHwControl (hintc[矢量]、CSL_INTC_CMD_EVTCLEAR、NULL)!= CSL_SOK)

    printf ("错误:gem-intc CSL_intc_cmd_evtclear 命令失败\n");
    返回-1;


    /*启用事件。 *
    if (CSL_intcHwControl (hintc[矢量]、CSL_INTC_CMD_EVTENABLE、NULL)!= CSL_SOK)

    printf ("错误:gome-intc CSL_intc_cmd_EVTENABLE 命令失败\n");
    返回-1;


    返回0;



    我对函数 CSL_intcOpen /CSL_intcPlugEventHandler/CSL_intcHwControl 不是很了解,您能给我一些参考吗?

    再次感谢您的回复!
    从作业开始
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此处提供了您要查找的所有 CSL 函数:
    pdk_c667x_x_x_x\packages/ti\cSL\src\intc

    您可以在此处查看实现的详细信息。

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

    感谢您的回复!