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.

[参考译文] MSP430F6779A:CodeGen-8640递增易失性位字段会导致代码损坏

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1352438/msp430f6779a-codegen-8640-incrementing-a-volatile-bit-field-leads-to-corrupted-code

器件型号:MSP430F6779A

您好!

我使用的是下面的 IDE 版本和编译器版本

IDE 版本

Code Composer Studio 10.1.00004

编译器版本

TI V20.2.1.LTS

我看到过与 链接器错误相关的说明。

22 20.2.5 代码生成器- 8640 递增易失性位字段会导致代码损坏

sir.ext.ti.com/.../EXT_EP-10255

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/979377/compiler-msp430fr5969-linker-error-__mspabi_srli_6


在我的项目中、编译后不存在链接器错误。 这是否意味着没有问题(对于 bug CodeGen-8640 )?

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

    我认为还可以。 但我会让 SDTO 的同事给出更多评论。

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

    我们发现这个问题的唯一方法就是在链接时失败。  也就是说,从理论上讲,问题可以表现出其他方式。  要确信这个问题不存在、必须检查代码是对易失性位字段执行递增还是递减。

    谢谢。此致、

    -乔治

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

    您好、 George Mock、

    非常感谢。

    将"volatile"关键字添加到变量(采用位字段)也可以解决此问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正在将"volatile"关键字添加到变量(使用位字段)也解决了此问题?

    否。  它刚好相反。  要使该问题发生、需要满足的条件之一是存在一个易失性位字段。  如果代码没有易失性位字段、则无法受此问题的影响。

    谢谢。此致、

    -乔治