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.

[参考译文] 编译器/TMS320F28335:C2000连接器段故障

Guru**** 2524550 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/684624/compiler-tms320f28335-c2000-linker-seg-fault

器件型号:TMS320F28335

工具/软件:TI C/C++编译器

在过去的几天里、我一直在处理"未定义符号"错误、现在已将其转移到链接器崩溃!

(我认为这是进步吗?)

未定义的符号错误似乎实际上是内存分配问题的症状。 当我向项目"B"添加一组新代码(新代码在项目"C"中验证工作)时、它开始出现。 未定义的符号错误与我正在集成的新类之一相关、即项目"B"中的"Comms_B"(同样、Comms_B 非常乐意在项目 C 中进行编译和链接)。 但我同时添加了几个其他内容、其中没有一个会触发任何编译器错误、所有这些都可以在项目 C 中正常工作(项目 C 使用同一个芯片、 但另一个链接器配置 F28335.cmd 文件与工程 B 不兼容、工程 B 比工程 C 大得多)

我在项目 B 中的新类周围放置了一些"#ifndef"、以便可以将其切换为输入/输出以测试链接器设置等

现在、当 Comms_B 超出图片时、我得到以下错误。

这是报告这种情况的适当场所吗?

感谢您的任何建议。 我无法公开共享代码(您无论如何都不想读取代码)、但我认为我可能会获得批准以提交给 TI 进行故障排除。

我在 Linux 上运行的是 Code Composer Studio v7.2、编译器版本为18.1.1 LTS。

--


****为项目 B 构建配置调试****

/home/user/ti/ccsv7/utils/bin/gmake -k -j 4 all -O
建筑目标:B.out
调用:C2000链接器
"/home/user/ti/ccsv7/tools/compiler/ti-cgt-c2000_18.1.1.LTS/bin/cl2000 /home/user/workspace_v7/EMSLib/DSP2833x_Headers_nonBIOS.cmd /home/user/workspace_v7/ELib/Debug/ELib.lib -v28 -ml -mt --float_support=fpu32 -off -opt_for_speed=2 -advice:performance=所有-g -rlib -diag_warning=225 -diag_wrap=off -display_error_number -z -stack_size=0x300 -rlib_exit_rom-/home/user/ti/ccsv7/tools/compiler/ti-cgt-c2000_18.1.1.LTS/lib /home/user/workspace_v7/BAUTO/Debug/BAUTO.lib -link_lib_ram_ram_prisec."-content_lib_infote_infote_infot_infot_infot_infot_infot_content-/home/user/ti/ccsv7/tools/compiler/ti-cgt-c2000_18.1.1.LTS/include /home/user/workspace_v7/BLib/Debug/BLib.lib -link/r321./rts.html"-content_lib_lib_lib_infot_infot_infot_infot_infot_infot_infot_infot_ina./r./rts.intrack_infot_infot_infot_infot_infot_infot_infot_infot_infot_infot_infot_infot_infot_infot.in./infot.in./infot_infot_infot_infot_infot_infot_infot

警告#10210-D:创建默认大小为0x400的".esysmim"段;使用-heap 选项更改默认大小

内部错误:/home/user/ti/ccsv7/tools/compiler/ti-cgt-c2000_18.1.1.LTS/bin/lnk2000遇到段错误

这是由 TI 链接器中的缺陷引起的。
TI 客户支持可能会建议解决方法来避免这种情况。

升级到编译器的最新版本可能会解决此问题。

在 E2E 支持论坛中联系 TI、网址 为 http://e2e.ti.com 、位于
"开发工具"、"TI C/C++编译器"。  请参阅标题为的链接
"提交问题"。

我们需要看到整个错误消息以及完整、可重现的消息
包括所有命令行选项的测试用例。
包含所有目标文件、库和链接器命令文件
用于链接程序。


gmaking[1]:***[B.OUT]错误1
>>编译失败
Makefile:151:目标'B.out'的配方失败
gmake:***[全部]错误2.
Makefile:142:目标'all'的配方失败

****构建完成****

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

    请发送测试案例、让我们重现此行为。  在这样的情况下、我们通常会要求整个 CCS 项目。  但您提到...

    [报价用户="Andrew Bolin"]我无法公开共享代码(您无论如何都不想阅读代码),但我认为我可能会获得批准以提交给 TI 进行故障排除。

    假设... 在本例中、我认为我们可以放弃整个项目。  请将这些文件压缩...

    Bmain.obj
    B_MainProcess.obj
    DSP2833x_CodeStartBranch.obj
    /home/user/workspace_v7/EMSLib/DSP2833x_Headers_nonBIOS.cmd
    /F28335.cmd
    /home/user/workspace_v7/BAUTO/Debug/BAUTO.lib
    /home/user/workspace_v7/BLib/Debug/BLib.lib
    /home/user/workspace_v7/ELib/Debug/ELib.lib

    发送给我。  以下是操作方法。  将鼠标悬停在我的屏幕名称或头像上。  将弹出一个框。 单击发送私人邮件。 在出现的消息撰写界面中,使用回形针图标附加 zip 文件。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢乔治、我将收集这些文件并将其发送给您。
    假设 TI 已同意对代码保密、我已被告知可以根据需要提交源文件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您发送测试案例。  我无法重现完全相同的问题。  但我确实看到了异常的诊断。  因此、我在 SDOWP 系统中提交了 CodeGen-4721、以对其进行调查。  欢迎您在我的签名中使用下面的 SDOWP 链接进行访问。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的乔治:
    事件报告没有更新(报告也标记为版本16.9.1、但结果与我安装的所有编译器在16.9.1至18.1.1之间相同)。 我注意到、该主题被标记为"TI 认为已解决"、但我们的项目仍然处于停滞状态。

    我对链接器.cmd 文件进行了进一步的实验、并对代码进行了一点重新考虑(一位同事说、他们有一些奇怪的行为、这归因于头文件中的代码过多)。 根据配置的不同、我可能会遇到"未解析符号"错误、或者使用"释放"构建配置、我会得到看似成功的构建、但在尝试将程序传输到芯片时 IDE 会崩溃。

    是否有人可以为我提供任何指导、或者我是否可以提交完整的代码(根据某种保密协议)以进行进一步诊断?

    重申一下、由于这个问题、我团队的商业项目无法继续进行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Andrew Bolin0">]我能否提交完整代码(根据某种保密协议)以进行进一步诊断? [/报价]

    如果我复制与您显示的链接器崩溃完全相同的情况、这将是理想的选择。  为此、我怀疑我们需要整个 CCS 项目。  有关 如何创建 zip 文件、请参阅文章 Project Sharing。 然后通过私人消息将其发送给我、就像您在上一个测试用例中所做的那样。

    关于保密协议... 我从未谈判过这样一项协定。  我不知道所有这些都涉及到什么。  虽然我不太清楚这需要律师、你不想阅读的表格、两家公司的官员的签名以及所有类似的事情。  如果你不能说的话,我会对所有的东西看一个昏暗的视图。

    相反、请以这种方式来考虑它。  我们非常清楚您在向我们发送代码时对我们的信任。  假设某件事以某种方式退出、这是我们的错。  无论是否同意、我们都不会看到另一个测试案例。  这会破坏我们的业务。  相信我、我们非常认真地对待这一点。

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    我与您分享您对与律师谈判等的感受

    如果您只能说出"您的代码将仅用于此问题的故障排除、它不会进入 TI 外部"的效果、那么这就是我所需要的全部。

    (感谢您在上述强烈暗示、但我们的法律人员需要明确声明... 抱歉)

    谢谢、

    Andrew。

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

    当然。  您的代码将仅用于此问题的故障排除、不会超出 TI 范围。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。 随附代码发送 PM。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、在进行一些进一步的实验后、我可以说、目前只有在 Linux 上发生 Seg Fault。
    在 Windows 上、我可以编译、加载和运行该程序!

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

    感谢您发送另一个测试用例。

    [引用用户="Andrew Bolin0"]我可以说,目前只有在 Linux 上发生 Seg Fault。

    我可以重现该崩溃。

    [引用 user="Andrew Bolin0"]这是否意味着链接器的 Linux 版本中存在错误?

    是的。  我更新 了 CodeGen-4721以添加最近的测试用例。  和以前一样、欢迎您在我的签名中使用下面的 SDOWP 链接进行访问。

    在 Windows 上执行编译是否实用?  您的项目是否仍处于停产状态?

    谢谢、此致、

    乔治

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

    [引用用户="George mock"]

    是的。  我更新 了 CodeGen-4721以添加最近的测试用例。  和以前一样、欢迎您在我的签名中使用下面的 SDOWP 链接进行访问。

    [/报价]

    谢谢。 至少我们似乎已经缩小了这个问题的范围。

    [引用用户="George mock"]

    在 Windows 上执行编译是否实用?  

    [/报价]

    这不是理想的、但我可以处理它。

    [引用用户="George mock"]

    您的项目是否仍处于停产状态?

    [/报价]

    不可以、这允许我继续。 感谢您的帮助。