我一直在使用 MSP MCU FRAM 实用程序中的 NVS 实用程序、几乎可以按预期工作、但效果不是很好! NVS 数据正在 FRAM 中正确定位、并在重新启动时保留、但如果我重新加载代码、则会重新初始化。 我猜这是一件很重要的事情、但我错过了-希望有人能给我指正确的方向。 下面是我所做的工作以及我目前所处的位置的一个前提。 我使用的是 GCC 工具链和 Studio 10.4。
首先、使用以下命令将 NVS 存储分配给.persistent 段;
uint8_t NVS_DATA[NVS_DATA_STORAGE_SIZE (sizeof (NVS_DATA_t))]__attribute__((section (".persistent")));
在映射和调试器中、所有这些都正确地位于 FRAM 中的.persistent 段(5964处理器中的0x4xxx)。
从该 处理器的链接器.ld 脚本中、相应的段为;
/*此段包含加载期间初始化的数据
但不在应用程序复位时。 *
.persistent (持久):
{
。 =对齐(2);
提供(__persistent_start =.);
*(.persistent)
。 =对齐(2);
提供(__persistent_end =.);
}> FRAM
我的第一个尝试是、这应该包括一个(NoLoad)指令来 抑制加载期间的初始化、但这似乎没有什么不同。 从对调试器进行透视、NVS 数据在 NVS 执行其自身验证之前肯定已重新初始化。
我有什么想法出错了吗?
Andrew