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/CCStudio:CCS10发生声明失败

Guru**** 2952510 points

Other Parts Discussed in Thread: 66AK2H12

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/961758/ccs-ccstudio-assertion-fail-is-occurred-with-ccs10

器件型号:CCStudio
主题中讨论的其他器件:66AK2H12

工具/软件:Code Composer Studio

你(们)好  

当我们的客户运行我在此线程上附加的程序时,将发出以下失败消息。

如果它们将优化配置更改为"非-O3"、则不会发生故障。

或者、如果他们在 Visual Studio 上编译代码而不是在 CCS 上编译代码、则不会发生故障。

因此、失败可能是由编译器引起的。

-器件:66AK2H12

- CCS #:CCS 10.1.1.00004 for Windows

有关测试的更多信息、请参阅随附的测试项目。

e2e.ti.com/.../compiler_5F00_test.zip

谢谢、此致、

哈塔。

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

    感谢您将此问题通知我们、并提交一份简明的测试案例。  我可以重现相同的行为。  我在使用--opt_level=1或更高版本进行编译时看到了问题。   

    尚未提交错误报告、因为分析远不足以说明问题调查应集中在哪里。  我将在下周初提交一份错误报告、并告知您其 ID 号。

    谢谢、此致、

    乔治

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

    事实证明您的代码中存在错误。  考虑 func_fail...中的此代码

    否则、如果(10 <= X && X < 10000){
    fxdLogX =-6 *(X - 5000)*(X - 5000)+ 120040 *(X - 5000)- 1682360000; 

    当 X=10时、表达式的最终值为 -2430760200。  该数字不能用32位有符号整数表示。  语言标准说、像这样的溢出是未定义的行为。  编译器可以对未定义的行为执行任何操作。  它甚至可以计算您期望的结果。  但更常见的是、编译器假定从未发生未定义的行为。

    您需要更改代码以解决此溢出问题。  要考虑的一种解决方案是将所有变量更改为 long 类型。

    谢谢、此致、

    乔治

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

    尊敬的 乔治:

    非常感谢!