尊敬的 TI:
我一直在参与 MSP430FR2433 Launchpad BlinkLED 项目,以更好地了解如何将数据保存到非易失性 FRAM 内存中。 请注意,我已经了解了许多文档和帖子,包括 SLAA628 FRAM 最佳实践,并看到了有关如何使用持久性和 NOINIT pragma 等的代码示例
我想使用带有位置 pragma 的持久性 pragma 在信息存储器空间中存储大约1次初始化的数据(在程序时)。 文档没有明确说明可以执行此操作,但它几乎可以正常工作。 我注意到链接器确实将变量放置在正确的位置,并且它按预期初始化,但我似乎无法更新它。 当我将变量与程序存储器放在一起时,情况会如预期的那样正常工作。 可能我需要使用 SYSCFG0寄存器执行更多操作来更新信息存储器?
#pragma 持久性(testVar)
#pragma location=0x1800 //如果我对此进行注释,则情况会如预期一样工作,但变量不在我所需的信息存储器段中。
无符号长 testVar = 0x5544;
SYSCFG0 = FRWPPW | DFWP;//程序 FRAM 写入启用
testVar++;//在 FRAM 中记录端口事件
SYSCFG0 = FRWPPW | PFWP | DFWP;//程序 FRAM 写保护(不可写)
谢谢,
布雷特