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.

[参考译文] TMS320F28377D:结构中的全局变量随机更改

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1502099/tms320f28377d-global-variables-in-structure-are-changed-randomly

器件型号:TMS320F28377D

工具/软件:

您好专家

客户报告 CCS6.2和 v15.12.3.LTS 编译器存在问题。  一旦将--opt_level 设置为0/1/2、则可以重现问题、设置为 OFF 则无法重现问题

以下是客户为重现此问题而采取的措施:

1.声明如下结构:

VAR1

VAR2

...

结构1.

2.声明结构嵌套 Structure1如下所示:

VAR1

VAR2

...

结构1实例

&函数处理程序

结构2地址(&B)

结构_2.

3.声明数组  structure_2[N]、并写入 for 循环以选择 Structure_2[N]中最大的 VAR1、例如:

温度= 0

对于(I = 0;I<N;I++)

如果 Temp < Structure_2[N].VAR1{

Temp = Structure_2[N].VAR1  

}

}

4. 将--opt_level 设置为任何0/1/2级别、构建并运行工程、structure_2中的变量值将随机更改。

5.如果将 --opt_level 设置为 off、或者阻止 for 循环或写入比较语句 N 次而不是 for 循环、则不会发生问题。

您能分享一些调试此问题的建议吗?

谢谢

Joe

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

    遗憾的是、这种描述过于含糊。  对于发生问题的源文件、 请按照 如何提交编译器测试用例一文中的说明进行操作。  关于...

    Unknown 说:
    structure_2中的变量值将随机更改

    ...请命名结构中意外更改的一个字段。  请描述您期望的价值以及您看到的价值。  当您多次运行程序时、是否会出现相同的错误值?  还是出现了不同的错误值?

    谢谢。此致、

    -乔治

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

    您好、George  

    我将与客户讨论如何在外部共享代码以提交编译器测试用例。 同时、我还会让客户尝试是否可以更新编译器版本并重试。

    谢谢

    Joe

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

    您好、George  

    客户反馈、如果他们定制程序、就不会出现问题、但他们无法发送整个项目进行 TI 调试。 因此、我让他们更新编译器版本、看看问题是否仍然存在。 客户提出的一个问题:

    一旦将-opt_level 设置为 off/0/1/2、您能否在下面的"for loop"中详细分享汇编语言的差异? 编译器用户指南中没有太多详细信息。

    谢谢

    Joe

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

    您好:

    请注意,由于某些假期/假期,可能需要几天的时间才能得到答复。

    谢谢你

    Ki

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

    您好、Ki

    专家今天回来工作了吗?

    谢谢

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

    Joe、

    我相信乔治应该回到今天的工作。 让我 ping 他、看看他是否对您的问题有任何反馈意见。

    谢谢、

    Ricky

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    一旦-opt_level 设置为 off/0/1/2、请在下面的"for loop"中详细分享汇编语言的差异? 编译器用户指南的详细信息不多。

    了解这些差异的唯一方法是构建您提供的测试用例。  仅适用于一个源文件、即包含函数的源文件 obs_spabs_LUT 、 请按照 如何提交编译器测试用例一文中的说明进行操作。

    谢谢。此致、

    -乔治

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

    谢谢 George

    我联系了客户、了解他们是否可以将进度前文件分享给我们。

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

    您好、George

    客户不想与 TI 分享预处理代码、我将关闭此主题并通过电子邮件跟进、看看是否有解决此问题的解决方法。

    谢谢

    Joe

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

    您好、George

    根据调试、它看起来更像是 ADC 问题。

    谢谢

    Joe