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.

[参考译文] MSP430FR6.9891万:有关MSP430 16位值是否需要对齐的问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/630453/msp430fr69891-question-about-whether-alignment-is-necessary-on-the-msp430-for-16-bit-values

部件号:MSP430FR6.9891万

您好,

我正在处理的设计遇到了一个问题,感觉像是对齐问题。

基本上,它看起来像一个全局16位值,它在结构中没有被正确写入或读取。  我想知道是否存在对齐的一般问题,即要求在一个均匀的地址上对齐所有变量。  我很难相信这一点,我还没有找到任何TI文档,用于编译器或MSP430,其中指出必须进行校准。  与MSP430中的偶数地址一致的唯一功能是程序计数器和堆栈指针。

如果有任何人知道TI提供的任何文档,其中介绍了编译器和/或MSP430 (特别是MSP430FR6xx系列)中的对齐要求,我将非常感激。  我在谷歌上搜索了很多地方,到目前为止,我还没有从TI看到任何东西。

提前感谢您提供的任何帮助。

注:我还在TI C/C++编译器论坛上发布了相同的问题。

谢谢!
亚当

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

    因为这听起来就像一个编译器论坛问题,我通常会将它发送给他们,但由于您已经将其发布在那里,我现在将保留此线程,直到您从编译器论坛收到回复。 当您收到来自该论坛的回复并提供任何信息时,请在此处回复,并告诉我几天过去了,您是否尚未收到回复。

    此致,

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

    我已经收到了编译器论坛对这个问题的回复,但这仍然是一个未决问题,我将从这里了解这个问题的发展情况。 我一定会用回复更新此主题,并在它关闭时通知每个人。

    再次感谢您的回复。 非常感谢。

    亚当
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我都准备好了这个问题,幸运的是,我在正在处理的MSP430固件代码中发现了这个问题。

    下面是我在编译器论坛上发布的内容:

    ----------------------------------

    您好,

    我看到的问题的根本原因是#pragma pack( push, 1)从未弹出。 在查看代码时,缺少POP的原因并不是很明显,因为它是以独立于平台的方式完成的。 MSP430案例的Pop在几个月前被遗忘了。 而且,这个问题现在才神秘地开始成为一个问题。 缺少弹出的压缩导致其他结构出现问题,因为它们被打包为1字节对齐,而不应该是这样。

    总之,我已经解决了我所看到的对齐问题。 您对编译器用户指南中记录的对齐要求的回答非常有帮助。

    如果您知道其他TI文档中说明为什么需要对齐的位置,这也将非常有帮助。

    非常感谢您的帮助。


    亚当

    ----------------------------------