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/MSP430FR5959:fram 存储器初始化中的变量

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/820670/ccs-msp430fr5959-variable-in-fram-memory-initialization

器件型号:MSP430FR5959

工具/软件:Code Composer Studio

我在框架中设置一个类似这样的变量

#pragma SET_DATA_SECTION (".sysmem")
unsigned int framinit;
#pragma SET_DATA_SECTION ()

有时 、变量 初始化为0xFFFF 有时是0x0000

我有两个具有相同链接器文件的不同项目。 但它们的行为不同。

在两个项目中、所有未使用的 fram 都设置为0xFFFF

在两个项目中、变量都位于0xC400

一个项目输出

@C400
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

另一个不会向存储器的该部分写入任何内容。
文件从0xc800开始、其中我有一些代码

我猜 Code Composer 中的设置在每个项目中都是不同的。

通过本章、我刚刚讨论了这种行为、但我想知道如何纠正这种行为、以便我可以期望它始终以一种方式工作。  

我希望我能很好地解释这一点...  

提前感谢您。

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

    Gerald、您好、

    感谢您的发帖。

    我们将为您研究这个问题、尽快返回。

    谢谢、

    是的

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

    Gerald、您好、

    我建议使用 PERSISTENT 或 NOINIT 将变量存储在 FRAM 中。

    pragma PERSISTENT

    • persistent 应分配到默认链接器 cmd 文件中的 FRAM
    • 您将需要初始化 persistent 变量  

    pragma NOINIT

    • NOINIT 未在默认的链接器 cmd 文件中分配给 FRAM,您需要更改它。
    • 您无需初始化 NOINIT 变量

    如需更多信息、请参阅以下文档:  

    谢谢、

    是的