客户希望了解为什么 CCS 使用不同的编译器版本为同一项目创建不同大小的.out 文件,而不进行优化。
1) CCS 3.3,C2800编译器版本: 5.2.1,.out 文件的大小为 274kB。
2) CCS6.0, C2800编译器版本:15.12.3.LTS, .out 文件的大小为 226kB。
客户发现,使用较新编译器版本的项目的 ISR 执行时间需要更长的时间,但
请帮您分享 对此的评论吗? 谢谢你。
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 使用不同的编译器版本为同一项目创建不同大小的.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 构建时运行速度较慢的函数。 对于该源文件, 请按照文章 “如何提交编译器测试用例”中的说明进行操作。 此外,请为执行速度较慢的函数命名。
谢谢,此致,
乔治