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.

[参考译文] MSP430FR2476:信息 FRAM 写入

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1160659/msp430fr2476-information-fram-writes

器件型号:MSP430FR2476

您好!

我想使用信息 FRAM 的512B 来存储变量并使其永久写入。

我已经设法使用以下命令使用程序 FRAM 位置0x8000:

#pragma PERSISTENT (FRAM_vars)
unsigned char FRAM_vars[4]={0、1、2、4};

后跟:

   SYSCFG0 = FRWPPW | DFWP;                                                                //程序 FRAM 写入使能
   FRAM_vars[诸如此类]=1;
   SYSCFG0 = FRWPPW | PFWP | DFWP;                                                             //程序 FRAM 受写保护(不可写)

这种方法运行良好、但意味着我必须在保护/取消保护程序 FRAM 的同时持续使用几个周期。

我更喜欢使用信息 FRAM 并保持其不受保护、有人能不能建议我可以使用什么代码将变量分配给 iFRAM 吗?

谢谢。

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

    我这里没有我的资料、但我认为它就像补充说的那样简单:

    >#pragma DATA_SECTION (FRAM_vars、".info")

    检查项目的链接器.cmd 文件以确保段名正确(内存名可能为'info')。 我认为您仍然需要清除 DFWP (一次)。

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

    嘿 Paul、

    正如 Bruce 提到的、我相信您只需清除一次 DFWP 即可将其禁用。  这是否适合您?

    或者您是否试图保护某些区域并使某些区域保持开放?

    谢谢、

    JD

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

    还有一个应用手册从存储器分区方面介绍了其中的一些内容: https://www.ti.com/lit/slaa628 

    谢谢、

    JD

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

    更正:使用 DATA_SECTION ([...]、".info")、但删除 persistent。 链接器文件使".info"段成为 NOINIT、该段(与 C 初始化程序结合使用)提供持久效果。

    我刚才成功了。

    [编辑:少量澄清。]