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.

[参考译文] 了解使用不同编译器版本的.out 文件的不同大小

Guru**** 2585275 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1079517/to-understand-the-different-size-of-the-out-files-using-different-compiler-versions

客户希望了解为什么 CCS 使用不同的编译器版本为同一项目创建不同大小的.out 文件,而不进行优化。  

1) CCS 3.3,C2800编译器版本: 5.2.1,.out 文件的大小为 274kB。

2) CCS6.0,  C2800编译器版本:15.12.3.LTS, .out 文件的大小为 226kB。

客户发现,使用较新编译器版本的项目的 ISR 执行时间需要更长的时间,但  

请帮您分享 对此的评论吗? 谢谢你。

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

    输出文件的大小仅与程序所需的内存量有着松散的关系。  因此,比较.out 文件的大小是无效的。  比较程序所需的内存量更好。  要查看该内容,请查看链接器创建的.map 文件。  15.12.3.LTS 版创建的.map 文件包含一个名为模块摘要的部分,其中显示了程序使用的总内存量,以及该大小的一些不同的中断。  不幸的是,5.2.1创建的.map 文件没有此功能。 相反,请查看文件开头附近的内存配置,并在“已用”列中添加十六进制数字。   

    如果您关心性能或代码大小,则可以使用编译器选项--opt_level=2或更高版本进行优化。  编译器执行的大多数优化都可以减少指令周期和代码大小。  但是,一些优化措施却没有实现。  对于这些优化,请使用选项 --opt_of_speed=number (其中 number 可以是0-5)告诉编译器您对代码大小的关注程度。  数字越低意味着代码大小越关心,数字越高意味着速度越关心。  如果您非常关注代码大小的减小,请使用--opt_for 快速=0。   请在 C28x 编译器手册中搜索这两个选项

    如果这不能解决问题,请选择一个源文件,其中包含一些在使用15.12.3.LTS 构建时运行速度较慢的函数。  对于该源文件, 请按照文章 “如何提交编译器测试用例”中的说明进行操作。  此外,请为执行速度较慢的函数命名。

    谢谢,此致,

    乔治