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.

[参考译文] 编译器/TMS320F28034:编译器优化问题

Guru**** 2551110 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/761428/compiler-tms320f28034-compiler-optimization-issue

器件型号:TMS320F28034

工具/软件:TI C/C++编译器

您好!  

客户使用 F28034进行电机控制。 现在、他们面临一个有关编译器优化的问题。 由于优化、代码序列发生了更改、与*。c 文件中的序列不同。 我们想知道原因和避免方法。  

详细信息:

1)编译器版本:4.1.3和6.2.x 有相同的问题;

2) 2)优化级别2和3具有相同的问题、因为代码位于一个函数中。  

3) 3)下面是代码的拆分、gBeforeRunPhaseLose。CurComperCoff = Data1;序列通过优化2或3进行更改。 它在大约11个行代码之后执行。  

4) 4)下面是未进行优化的拆分。 它会立即执行。  gBeforeRunPhaseLose.CurComperCoff 将设置正确的值而不会有任何延迟。  

5) 5)在函数中、 gBeforeRunPhaseLose .CurComperCoff 将在其他两个位置设置其他值。 如果从编译中排除这两个 place'代码、则结果类似于第4点)。 CurComperCoff 将立即设置正确的值。 如果这两个位置的代码被建立、就会出现问题、如第3点)。 优化将这些代码"合并"并导致新值设置延迟。  

非常感谢。

BR、Jordan

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

    不幸的是、我无法判断正在发生什么。  对于包含此代码 的源文件、请按照文章如何提交编译器测试用例中的说明进行操作。  我将使用不同的优化级别构建此文件、然后检查生成的汇编代码。  

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、George
    我们能否尽快通过 CCS 项目远程控制计划电话会议? 作为:
    1) 1)无法提供源代码。 无法提交测试用例。
    2) 2)远程控制之前与它们一起使用。
    3) 3)该客户是亚洲十大工业客户之一。 这一问题推迟了几个项目的生产管理计划,甚至对目前的大规模生产产品产生了影响。

    如果可以、我们是否可以计划在您的周五早上拨打电话?
    请通过以下地址回复我:jordan-zhou@ti.com。 我们将很好地准备代码和工具。 您可以从 PC 运行。
    非常感谢。
    BR、Jordan