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.

[参考译文] MSP-EXP430FR2355:关于 MSP430FR2355中的 FRAM 存储

Guru**** 2538930 points
Other Parts Discussed in Thread: MSP430FR2355

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/981193/msp-exp430fr2355-regarding-fram-store-in-msp430fr2355

器件型号:MSP-EXP430FR2355
主题中讨论的其他器件:MSP430FR2355

大家好、团队、

我想使用 DFWP 或 PFWP 在地址0x001800处永久存储一个值(键入'uint8_t')。 我尝试使用#pragma PERSISTENT ()、 但它存储在0x008000位置、在复位后、它将在同一地址变为00。 如何在特定位置存储 msp430fr2355。 下面是我尝试过的代码、有人能帮我解决这个问题吗?

#pragma PERSISTENT (gu8LogicalId)
volatile uint8_t gu8LogicalId = 0;

void main ()

{
//在 FRAM 中添加变量 Port_event 来记录 Button 事件
//写保护从程序 FRAM 的开头开始+1024字节
//代码起始地址+ 1024字节,应修改链接器命令文件
SYSCFG0 = FRWPPW | FRWPOA0 | DFWP | PFWP;//为配置1024字节
//FRAM 写入
gu8LogicalId = 1;

SYSCFG0 = FRWPPW | DFWP | PFWP; //程序 FRAM 受写保护
//(不可写)
}

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

    您好、vamshi b、

    您需要提供特定地址。

    示例:

    #pragma PERSISTENT (花生)
    #pragma LOCATION (花生、0x1800)
    uint16_t 花生= 0;

    请参阅随附的 pdf 和示例代码。

    e2e.ti.com/.../1538.Write-to-FRAM-example.pdfe2e.ti.com/.../6281.main.c

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

    感谢 Dennis 的回复、

    这解决了我的内存位置问题、但我希望即使闪存代码也不会影响该位置。 我是否可以防止重新编程某个位置?

    uint16_t 花生= 0; 这在每个新程序中将内存编程为0。 我们可以避免这种情况吗?

    我想知道在哪里可以获得有关#pragma LOCATION ()的信息?

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

    您好、Vamshi、

    您对目标进行了什么编程或如何编程?

    例如使用 CCS 和 MSP-FET430?

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

    谢谢 Dennis、

    您的示例代码解决了重新初始化存储器的问题。 已使用 NOINIT()解决的问题。

    我只想了解有关 TI #pragma 定义的更多信息、请向正确的方向指示。  

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

    您好、Vamshi、

    MSP430 C/C++编译器协会对所有#pragma 进行了说明

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

    谢谢 Dennis。