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.

[参考译文] TMS320F280049:C28x STL 软件测试应用程序生成[W9999]汇编器警告

Guru**** 2524550 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1326233/tms320f280049-c28x-stl-software-test-application-generates-w9999-assembler-warning

器件型号:TMS320F280049
主题中讨论的其他器件:C2000WARE

您好!  

我正在尝试将 C28x_stl 库集成到我自己的项目中、但遇到了编译错误。

我已经将 C28x_stl 库的.asm 文件包含在工程中、并且 CCS 报告了一个编译错误"[ W9999]寄存器读取访问位于同一寄存器的延迟时隙中"。 来自"C28x_stl_tg06.asm"文件。

CCS 版本:10.3.1.00003  

编译器版本:TI v22.6.0.LTS

C2000Ware 版本:C2000Ware_4_02_00_00

能否提供支持、我如何解决此问题?

非常感谢。

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

    这是预料之中的。 请参阅 C28x_stl_tg06.asm 文件(搜索"SEG_51")中解释允许发出警告的注释。 为了便于参考、我将其粘贴到此处:

    These Assembler warnings are permitted in the test vector assembly code of the C28_STL.  These
    warnings are generated because the test vectors are intentionally written in a way to stress
    the speed paths in the CPU and accelerator pipelines. The assembly code which stresses the
    pipeline may result in undefined behavior which results in assembler warnings. This assembly
    code is required for detecting dangerous faults in the pipeline. The warnings generated by the
    assembler for the test vector assembly code are therefore permissible

    惠特尼

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

    惠特尼、您好!

    感谢您的回复。 我理解这是预期行为。 但是、我正在尝试将测试库集成到我的项目中、但由于这个汇编器错误、无法编译该项目。

    另一方面、我可以 在没有任何警告或错误的情况下编译并运行 TI 提供的测试应用程序、我想知道实现这一目标所需的设置。

    此致、

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

    您是在项目中包含.lib、还是直接包含所有源文件? 如果您使用.lib、我预计您的主项目中不会出现警告。 正如您所指出的、这正是我们在测试应用示例中所做的、而且构建得很好。

    此外、您是否使用可提升错误警告的编译器选项? 鉴于这是一个警告、我不会认为它会妨碍成功构建。

    惠特尼

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

    我已经包含了 C 语言源文件、头文件、汇编文件以及软件测试源文件。

    您现在能否说明一下我如何包含.lib 文件以及如何使用它们? 我应该使用什么编译器选项?  

    由于 CCS 报告编译错误而不是警告、因此我无法在添加源文件后构建自己的工程。

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

    在 C28x_STL 的安装目录中、您可以在/C28x_stl_lib/build/lib 下找到预构建库文件。 您可以按照添加任何.c 文件的相同方式、将 F28004x_C28x_STL_release.lib 文件添加到工程中。

    或者、在工程的链接器设置中、您可以使用-l 和-i 链接器选项指定库文件名和位置。 更多详细信息、请参阅《汇编语言工具指南》中的"链接器"一章。

    惠特尼

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

    我已经 在工程中链接了 F28004x_C28x_STL_release.lib 文件、但编译器现在抱怨 tg00LoadSize 的未解析符号。

    我漏掉了什么吗? 我是否需要在  C28x_stl_lib_test_app\build\cmd 下包含链接的命令文件? 例如、 STA_F28004x_FLASH.cmd 和 STA_F28004x_FLASH_C28x_STL_TEST_GROUP.cmd?

    谢谢。

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

    好的、在示例项目中、我们使用 STA_F28004x_FLASH_C28x_STL_TEST_GROUP.cmd 来指示链接器生成这些 LoadSize 和 LoadStart 符号。 您还可以决定在何处加载测试向量(可以是闪存中的任何位置)以及从何处运行测试向量(始终为0x8000)。

    惠特尼