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/CODECOMPOSER:TUSB9261 - CAN't创建.hex文件

Guru**** 2568565 points
Other Parts Discussed in Thread: TUSB9260

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/589834/ccs-codecomposer-tusb9261---can-t-create-hex-file

部件号:CODECOMPOSER
主题中讨论的其他部件:TUSB9260

工具/软件:Code Composer Studio

您好,

我有源代码,并尝试在Code Composer中编译它,以获得一个bin或hex文件,并将其添加到演示板中。

我能够正确构建项目(有3个警告,但0个错误),但当我尝试启用“Enable ARM Hex Utiliy”时,我开始遇到错误,具体为两个错误:

说明   资源   路径   位置   类型
gmake:***[All]错误2   TUSB9260          C/C++问题
gmake [1]:***[C:\Users/x24.7663万/Documents/DUPX/Firmware/Source Code/TUSB926x Firmware Source - Test III/TUSB926x/Release/TUSB926.OUT]错误1   TUSB9260          C/C++问题

我跳过什么?

谢谢!

Gustavo G.

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

    Gustavo,

    您使用的是哪个版本的CCS? 能否发布构建控制台的完整输出?您可以将其复制到文本文件并将文件附加到此处。

    我怀疑该问题可能与路径 TUSB926x固件源-测试III中的空格有关, 因此您可以尝试使用没有空格的路径进行测试,看看是否有帮助?

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

    您好,

    感谢您的回复。 我正在尝试在Workspace v7中编译它。 附加的是输出控制台。

    请保留我的posted.e2e.ti.com/.../TUSB9260-Project-FW.txt

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

    从生成输出中,我看到生成本身没有完成,因为错误出现在链接步骤中,甚至在十六进制转换步骤之前。

    我在输出中看到两个问题:

    1) 警告:自动RTS选择:尝试自动链接索引 库"libc.a"失败;未找到文件

    >>编译失败
    Makefile:170:目标'C:/Users/x24.7663万/Documents/DUPX/Firmware/Source Code/TUSB926x固件源的配方-测试V/TUSB926x_FW_XV/Release/TUSB926.OUT' 1.05 失败

    2) 内部错误:C:16.9 \ti\ccsv7\tools\compiler\ti-CGT-arm_ARM_LTS.1.LTS\bin\armlnk.exe遇到未处理的异常


    以下是我解决这些问题的建议:

    首先,使用较新版本的ARM编译器工具进行安装和编译。 您可以尝试版本16.12 .0.STS。 使用此处所述的步骤安装: http://processors.wiki.ti.com/index.php/Compiler_Updates#Install_new_features。  然后进入您的项目属性并将其设置为使用16.12 .........0并重新生成。 希望此版本能够解决内部错误。  

    如果仍看到有关找不到libc.a的警告,请进入“项目属性”->“生成”->“链接器”->“文件搜索路径 ”,并检查路径“${CG_TOOL_ROOT}/lib"是否列在--search_path选项下。



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

    感谢您检查文件。

    我在16.9 上方找不到ARM版本。1,我附上了该版本最接近的图片。 这在Windows上可用吗? 或仅Mac/Linux?e2e.ti.com/.../TUSB9260-Project-FW-_2800_2_2900_.txt</s>2800 2900

    我在您选择时添加了文件搜索路径,但不知道我是否正确,我没有收到"未找到libc.a"错误,但得到了新的错误。

    请检查所附的文件和图像,并告知我是否有问题。

    此致!

    Gustavo G.

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

    在您的生成日志中,我看到以下内容:

    链接>
    错误:重新定义符号"__stack":首先在"./intvecs.obj"中定义;在中重新定义
    "C:16.9 \ti\ccsv7\tools\compiler\ti-CGT-arm_eabi.1.LTS\lib\rtsv7M3_T_le_eabi.lib<boot.obj>"

    这意味着链接器将看到该符号的两个定义,在本例中,一个在 intvecs.obj中,另一个在TI运行时库中的boot.obj中。 我怀疑这可能是由于文件传递到链接器的顺序。 我没有看到运行时库rtsv7M3_T_le_eabi.lib在命令行上显式传递,所以我想知道是否在链接器命令文件 tusb9260_link.cmd中指定了该库。 您能否检查并确认是否是这样? 或者,如果您可以在此处附加链接程序命令文件,这将很有帮助。

     

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

    对此延误深表歉意,

    下面是您询问的cmd文件:

    e2e.ti.com/.../tusb9260_5F00_link.zip

    此致!

    Gustavo G.

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

    Gustavo,

    链接程序命令文件未提供有关该问题的任何其他说明。 但是,我想我对这里可能发生的事情有一个猜测。

    您的应用程序具有定义符号__stack的源文件intvecs.asm。 在链接时,链接程序正在从运行时库(\rtsv7M3_T_le_eabi.lib)中拉入boot.obj以解析某些必需的引用。 该引导文件还定义了__stack,因此重新定义符号时会出现错误。

    通常,用户代码中提供的任何符号,如果在考虑任何库之前将其传递给链接程序,则始终优先。 但是 ,控制的粒度是输入部分,而不是符号。  输入部分可以定义多个符号。  因此,如果链接程序从运行时库的boot.asm文件中引入输入部分,并且该部分包含__stack的定义,则会出现重复定义错误。 这很可能就是这里正在发生的事情。 这当然是我最好的猜测,而不是实际查看您的项目文件。

    避免此错误的一个注意事项是将整个boot.asm文件从运行时源(\ccsv7\tools\compiler\ti-CGT-arm_boot.1.LTS\lib\src)复制16.9 到项目中,并自定义该文件以满足您的需要。 将该文件添加到项目中将允许链接程序首先解析其所有符号,而不是运行时库中的符号。  

    希望这有所帮助。

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

    对此延误深表歉意。 我正在测试您给我的最后一个建议。 我一有结果就会再回复一次。

    此致!
    Gustavo G.