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.

[参考译文] TMS320F2809:启用 C2000十六进制实用程序会损坏工程链接

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1208793/tms320f2809-enabling-c2000-hex-utility-corrupts-link-of-project

器件型号:TMS320F2809

使用 CCS12、我可以在禁用 C2000十六进制实用程序的情况下实现能够正常工作、编译和链接创建映像的项目配置。  如果我启用 C2000 Hex Utility、相同的 工程配置会在链接阶段失败。  在我看来、C2000 Hex Utility 是一个构建后步骤。  破坏构建过程的编译/链接阶段似乎不正确。  以下是来自"良好"构建链接阶段的摘录以及来自"损坏的链接"阶段的摘录。  我注意到了 语句在损坏链接阶段出现两次。  不确定这是否具有意义。  注意:该项目最初是从 CCS3.3转换而来的

C6000项目出现了类似的问题。 在这种情况下、调试配置可与十六进制实用程序一同工作、但发布配置不工作。 希望适用于 C2000的任何解决方案也适用于 C6000

未启用 C2000 Hex 实用程序时成功运行。

构建文件:"P:/Acorn/audio/2809_mlv/ti/DSP280x/v141/DSP280x_headers/source/dsp280x_globalvariabledefs.c "
调用:C2000编译器
"c:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/bin/cl2000 /Acorn/GeneratedCode/Audio/2809Mlv/Debug/ti/DSP280x/v141/DSP280x_header/source/dsp280x_globalvariabledefs.d_raw -v28 -ml -mt -O2 --include_path="P:/Acorn/audio/2809MlvPrj /Acorn/audio/2809MlvPrj/../2809_mlv/../../GeneratedCode/Audio/2809Mlv/Debug/ti/DSP280x/v141/DSP280x_header/source --include_path="P:/Acorn/tools/TILegacyFiles/include /Acorn/GeneratedCode/Audio/2809Mlv/Debug /Acorn/audio/2809_mlv/ti/DSP280x/v141/DSP280x_headers/source/dsp280x_globalvariabledefs.c --include_path="C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/include --include_path="P:/Acorn/GeneratedCode/Audio/2809Mlv/Debug --include_path="P:/Acorn/audio/2809_mlv/include --include_path="P:/Acorn/audio/2809_mlv/ti/DSP280x/v141/DSP280x_headers/include --advice:performance=all -g --define=_model="C:/Acorn/GeneratedCode/Audio/2809Mlv/Debug
已完成建设:"P:/Acorn/audio/2809_mlv/ti/DSP280x/v141/DSP280x_headers/source/dsp280x_globalvariabledefs.c

建立目标:"P:/Acorn/audio/2809MlvPrj/../2809_mlv/../../GeneratedCode/Audio/2809Mlv/Debug/2809_mlv.out
调用:C2000链接器
"c:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/bin/cl2000 /Acorn/GeneratedCode/Audio/2809Mlv/Debug /Acorn/audio/2809MlvPrj /Acorn/audio/2809MlvPrj/../2809_mlv/../../GeneratedCode/Audio/2809Mlv/Debug/2809_mlv.out /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/mlv.obj /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/sysctrl.obj -v28 -ml -mt -O2 --advice:performance=all -g --define=_inline --define=_debug /ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/lib --define=large_model /ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/include --P_diag=off -/Acorn/GeneratedCode/Audio/2809Mlv/Debug -display_error_number --issue_remarks --temp_directory="P /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/gpio.obj:/Acorn/GeneratedCode/Audio/2809Mlv/Debug/2809_mlv.map /Acorn/audio/2809_mlv /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/epwm.obj /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/mlv_main.obj /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/mlv_sci.obj /Acorn/GeneratedCode/Audio/2809Mlv/Debug/ti/DSP280x/v141/DSP280x_common/source/dsp280x_codestartbranch.obj -/Acorn/GeneratedCode/Audio/2809Mlv/Debug /Acorn/GeneratedCode/Audio/2809Mlv/Debug/ti/DSP280x/v141/DSP280x_common/source/dsp280x_usdelay.obj /Acorn/GeneratedCode/Audio/2809Mlv/Debug/ti/DSP280x/v141/DSP280x_header/source/dsp280x_globalvariabledefs.obj /Acorn/audio/2809_mlv/cmd/2809_ram_lnk.cmd /Acorn/audio/2809_mlv/cmd/dsp280x_headers_nonbios.cmd /Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib /ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/lib/rts2800_ml_eh.lib

警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#10063-D:指定"_c_int00"以外的入口点符号:"code_start"
已完成建设目标:"P:/Acorn/audio/2809MlvPrj/../2809_mlv/../../GeneratedCode/Audio/2809Mlv/Debug/2809_mlv.out

启用 C2000十六进制实用程序时失败。

构建文件:"P:/Acorn/audio/2809_mlv/ti/DSP280x/v141/DSP280x_headers/source/dsp280x_globalvariabledefs.c "
调用:C2000编译器
"c:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/bin/cl2000 /Acorn/GeneratedCode/Audio/2809Mlv/Debug/ti/DSP280x/v141/DSP280x_header/source/dsp280x_globalvariabledefs.d_raw -v28 -ml -mt -O2 --include_path="P:/Acorn/audio/2809MlvPrj /Acorn/audio/2809MlvPrj/../2809_mlv/../../GeneratedCode/Audio/2809Mlv/Debug/ti/DSP280x/v141/DSP280x_header/source --include_path="P:/Acorn/tools/TILegacyFiles/include /Acorn/GeneratedCode/Audio/2809Mlv/Debug /Acorn/audio/2809_mlv/ti/DSP280x/v141/DSP280x_headers/source/dsp280x_globalvariabledefs.c --include_path="C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/include --include_path="P:/Acorn/GeneratedCode/Audio/2809Mlv/Debug --include_path="P:/Acorn/audio/2809_mlv/include --include_path="P:/Acorn/audio/2809_mlv/ti/DSP280x/v141/DSP280x_headers/include --advice:performance=all -g --define=_model="C:/Acorn/GeneratedCode/Audio/2809Mlv/Debug
已完成建设:"P:/Acorn/audio/2809_mlv/ti/DSP280x/v141/DSP280x_headers/source/dsp280x_globalvariabledefs.c

建立目标:"P:/Acorn/audio/2809MlvPrj/../2809_mlv/../../GeneratedCode/Audio/2809Mlv/Debug/2809_mlv.out
构建文件:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib "
调用:C2000链接器
"c:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/bin/cl2000 /Acorn/GeneratedCode/Audio/2809Mlv/Debug /Acorn/audio/2809MlvPrj /Acorn/audio/2809MlvPrj/../2809_mlv/../../GeneratedCode/Audio/2809Mlv/Debug/2809_mlv.out /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/mlv.obj /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/sysctrl.obj -v28 -ml -mt -O2 --advice:performance=all -g --define=_inline --define=_debug /ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/lib --define=large_model /ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/include --P_diag=off -/Acorn/GeneratedCode/Audio/2809Mlv/Debug -display_error_number --issue_remarks --temp_directory="P /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/gpio.obj:/Acorn/GeneratedCode/Audio/2809Mlv/Debug/2809_mlv.map /Acorn/audio/2809_mlv /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/epwm.obj /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/mlv_main.obj /Acorn/GeneratedCode/Audio/2809Mlv/Debug/source/mlv_sci.obj /Acorn/GeneratedCode/Audio/2809Mlv/Debug/ti/DSP280x/v141/DSP280x_common/source/dsp280x_codestartbranch.obj -/Acorn/GeneratedCode/Audio/2809Mlv/Debug /Acorn/GeneratedCode/Audio/2809Mlv/Debug/ti/DSP280x/v141/DSP280x_common/source/dsp280x_usdelay.obj /Acorn/GeneratedCode/Audio/2809Mlv/Debug/ti/DSP280x/v141/DSP280x_header/source/dsp280x_globalvariabledefs.obj /Acorn/audio/2809_mlv/cmd/2809_ram_lnk.cmd /Acorn/audio/2809_mlv/cmd/dsp280x_headers_nonbios.cmd /Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib /ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/lib/rts2800_ml_eh.lib
调用:C2000链接器
"c:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/bin/cl2000 /Acorn/GeneratedCode/Audio/2809Mlv/Debug /Acorn/GeneratedCode/Audio/2809Mlv/Debug /Acorn/audio/2809MlvPrj /Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib -v28 -ml -mt -O2 --advice:performance=all -g --define=_inline --define=_debug /Acorn/GeneratedCode/Audio/2809Mlv/Debug --define=large_model /Acorn/audio/2809_mlv/lib/Debug/2809_mlv.map --diag_wrap=off /ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/lib --display_error_number /Acorn/audio/2809_mlv --issue_remark_remarks /ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/include


"C:\\users\\u2970317\\AppData\Local\\Temp\\107523"、第24行:错误#10008-D:找不到文件"../2809_ram_lnk.cmd"
"../2809_ram_lnk.cmd"
"C:\\users\\u2970317\\AppData\Local\\Temp\\107523"、第25行:错误#10008-D:找不到文件"../dsp280x_headers_nonbios.cmd"
"../dsp280x_headers_nonbios.cmd"
备注#10209-D:自动 RTS 选择:链接到索引库"libc.a"
"C:\\users\\u2970317\\AppData\Local\\Temp\\107523"、第26行:错误#10008-D:找不到文件"../flash2809_API_V100.lib"

>>编译失败
subdir_rules.mk:9:目标"flash2809_api_v100.out"的配方失败
"../flash2809_api_v100.lib"
"C:\\users\\u2970317\\AppData\\Local\\Temp\\107523"、第27行:错误#10008-D:找不到文件"../rts2800_ml_eh.lib"
"../rts2800_ml_eh.lib"
警告#10211-D:无法将归档文件 C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_6.4.12/lib/libc.a 解析为兼容库、因为未遇到任何输入文件;需要从输入文件构建属性信息来确定库兼容性
致命错误#10009:没有输入文件
gmake[1]:***[flash2809_api_v100.out]错误1.
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#16002-D:"P:/Acorn/audio/2809_mlv/lib/flash2809_api_v100.lib 中缺失的 build attribute vendor section TI ":无法确定兼容性
警告#10063-D:指定"_c_int00"以外的入口点符号:"code_start"
已完成建设目标:"P:/Acorn/audio/2809MlvPrj/../2809_mlv/../../GeneratedCode/Audio/2809Mlv/Debug/2809_mlv.out

Makefile:153:目标"全部"的食谱失败
gmake[1]:目标"辅助输出"由于错误而没有重新生成。
gmake:***[全部]错误2.

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

    这看起来与您引用的另一个线程类似。

    在我看来、C2000 Hex 实用程序是一个编译后步骤。  似乎不正确能够破坏构建过程的编译/链接阶段。

    是的,*应该*就是这样。 但是、由于以某种方式切换 C2000 Hex 实用程序选项、链接器设置似乎会受到影响

    但是、我无法重现此问题。 您能否提供可重现的测试案例? 我需要该项目以及构建该项目所需的所有源代码。 请注意、我不需要您实际的项目。 它可以被剥离成几个(或一个)虚拟文件的东西。 事实上,只要问题能够重现,这是可取的做法。

    谢谢

    小标题

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

    我如何将整个项目发送给 您?

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

    您可以将其拉高并连接到此主题。 如果您不想在公共论坛上分享、可以与我私人进行 E2E 对话、并将 zip 文件附加到其中。

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

    e2e.ti.com/.../audio.zip

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

    谢谢、测试用例非常有用。 我可以重现问题。 当启用十六进制转换实用程序时、它看起来与工程中链接的库和 cmd 文件相关。 真的很奇怪。 我将提交有关该错误的文件。

    请注意、对于更新的 CCS 版本、更常见的做法是在工程属性中添加库、而不是直接添加到工程(或链接到工程)。 如果我删除这些文件的链接、然后只是将它们添加到链接器属性中、那么该项目会在启用十六进制转换实用程序的情况下构建文件。

    目前或许这可以成为一种权变措施:

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

    我为此问题提交了一个错误。 跟踪链接: https://sir.ext.ti.com/jira/browse/EXT_EP-11096

    谢谢

    小标题

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

    谢谢、我将监控部分结果

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

    仅供参考:解决方法效果很好。  谢谢