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/TMS320F28335:不同工程中的同一文件具有不同的编译大小和执行时间

Guru**** 2589265 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/612215/ccs-tms320f28335-same-file-in-different-projects-has-different-compilation-size-and-execution-time

器件型号:TMS320F28335

工具/软件:Code Composer Studio

尊敬的所有人:

我对这个奇怪的问题感到非常困难。 因此、我有2个不同的项目 A 和 B、它们都使用非常相同的模块、其中包含卡尔曼滤波器例程、让我们将其称为卡尔曼.c 和卡尔曼.h

嗯、有一点是、当我编译这些项目(CCS 版本5)时、其中一个项目对应于卡尔曼的(.text)段的大小为0xBED、但对于另一个项目、其大小为0x1A45、大于 double。 同样、项目中的代码大小更大、执行速度也更慢(所需的时间超过两倍)。

我想知道导致这种情况的原因、因为我正在检查所有编译器和链接器选项和标志、所有内容的设置方式都是完全相同的。 此外、目标和整个硬件是相同的...

如果能在这个问题上提供任何帮助或见解、我将不胜感激。

提前感谢、致以最诚挚的问候、

豪尔赫。

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

    豪尔赫、

    [引用 user="Jorge sola">嗯、有一点是、当我编译这些工程(CCS 版本5)时、其中一个与 Kalman 对应的(.text)段的大小为0xBED、但对于另一个项目、其大小为0x1A45、 它大于双精度值。 [/报价]

    您能否附加两个项目中显示此特定函数.text 段大小的链接器映射文件? 理想情况下、我们 希望看到整个项目、以便更仔细地查看差异、因此如果项目不是太大、您是否能够与我们共享这两个项目?  

    [引用 user="Jorge sola">我想知道导致这种情况的原因、因为我正在检查所有编译器和链接器选项和标志、所有内容都是以相同的方式设置的。 [/报价]

    用于编译两个工程的编译器版本是否相同?  

    此外、您使用的 CCS5的确切版本是什么?

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

    Aartis、您好!

    我发现了问题。 编译选项实际上存在差异。 在文件程序代码越大越慢的工程中、激活了选项"在存在调试指令的情况下完全优化"(在"运行时模型选项"选项卡中)。

    该选项实际上有什么作用? 在哪里可以找到对每个编译器标志的影响和行为的更好的解释? 因为有时描述性名称不足以理解它。

    谢谢、此致、

    豪尔赫。

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

    感谢您的更新、很高兴您能够找到差异的根源。

    [引用用户="Jorge sola"]在哪里可以找到有关每个编译器标志的效果和行为的更好的解释?

    编译器用户指南和汇编语言工具用户指南详细介绍了所有编译器和链接器选项。 您可以从此 页面访问这些指南的最新版本

    但是、请注意、较新版本的 C2000编译器工具(15.12.0.LTS 和16.9.0.LTS)已弃用了--optimize_with _debug 选项、因此对于这些版本、该选项应该无效。 我怀疑您使用的编译器工具的旧版本仍然支持该选项。 我在下面附上了用户指南的较旧版本、在第3.8.1节中对该选项进行了说明。

    e2e.ti.com/.../SPRU514E.pdf