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.

[参考译文] MSP430FR2311:FRAM 变量写入

Guru**** 2782575 points

Other Parts Discussed in Thread: MSP430FR2311

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/759174/msp430fr2311-fram-variable-writes

器件型号:MSP430FR2311

我一直在阅读有关 FRAM 的文档和开箱即用示例代码、但还有一些问题尚不清楚。

我知道、如果我想将变量存储在 FRAM 中、我需要为每个变量添加以下内容:

#pragma PERSISTENT (variable 名称) 

然后、每当我写入该变量时、我需要暂时禁用存储器保护。

//获取先前的写入保护设置
uint8_t state = HWREG8 (SYS_base + OFS_SYSCFG0_L);
#ifdef DFWP
uint8_t WP = DFWP | PFWP;
#else
uint8_t WP = PFWP;
#endif

#ifdef FRWPPW
HWREG16 (SYS_BASE + OFS_SYSCFG0)= FWPW |(~和 Δ V WP);
#else
HWREG8 (SYS_BASE + OFS_SYSCFG0_L)&&~WP;
#endif

variable _name = 1;

//恢复以前的写保护设置
#ifdef FRWPPW
HWREG16 (SYS_BASE + OFS_SYSCFG0)= FWPW | STANY;
#else
HWREG8 (SYS_BASE + OFS_SYSCFG0_L)=状态;
#endif 

仍然不清楚的是、您应该可以转到 Properties -> General 来查看 CCS 中是否启用了存储器保护。  但是、我在那里看不到它。  我只想验证是否已打开内存保护。  如果先前的任何步骤或假设不正确、请更正我。

谢谢

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

    转至“属性”->“常规”后,选择“MPU”选项卡。 这将显示存储器保护单元配置。 下面的视频提供了一些您可能认为有用的 MPU 信息。

    training.ti.com/msp430-fram-microcontrollers-memory-protection-unit-mpu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Eddie、

    没有 MPU 选项卡、这就是我感到困惑的原因。  我正在运行来自 Resource Explorer 的 CCS8.3和开箱即用演示。

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

    [引用用户="Andrew5821"]没有 MPU 选项卡、这就是我感到困惑的原因。 MPU 选项卡仅适用于具有 MPU 的 FRAM 器件系列、例如 FR59xx 系列。 其中 MPU 允许主存储器分区、最多可编程三个以1KB 为步长的段。

    MSP430FR2311没有 MPU、SYSCFG0寄存器只允许 FRAM 写保护应用于整个程序存储器(即、与 MPU 一样、没有存储器分区)。