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.

[参考译文] LP-MSP430FR2476:创建非易失性存储器段

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1413319/lp-msp430fr2476-creating-non-volatile-memory-segment

器件型号:LP-MSP430FR2476

工具与软件:

我将尝试从本质上创建更大的信息存储器段。 我们需要存储大量校准表、并防止在固件闪存期间或任何其他状态更改期间被覆盖。 它们太大、无法放入正常分配的信息段、因此下一个逻辑步骤是创建我们自己的信息段。

我们尝试了#pragma NOINIT 以及随附的许多链接器配置。 关于调整链接器文件、该文档引人注目。

此外、我们创建了一个单独的内存段、然后将数据放在那个段中、并告诉 IDE 不要刷写存储器的那个部分。 但我们更希望避免此设置、因为期望对这些芯片进行编程的技术人员以与我们完全相同的方式设置他们的机器是不合理的。

TLDR:感觉我们整个论坛都在寻找一种解决方案、我们只想让现有功能变大。

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

    最简单的方法是使用 NOINIT、然后(在.cmd 文件中)将.TI.noinit 部分下移至 FRAM 低端中.TI.persistent 旁边。 这将阻止它移动很多。

    编程时、将"Project->Properties->Debug->MSP430 Flash Settings->Erase Options"设置为"Erase and download necessary segments"。 由于 NOINIT 没有与之关联的文本、因此它将不是"必要的"。

    由于 NOINIT (如您所想)从未初始化、因此您应该考虑如何处理首次用例(校验和/CRC 可能有用)。

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

    尊敬的 Gabriel:

    我没有更好的建议。 您可以设置仅用于信息的双固件、另一个用于具有 noinit 的应用固件。->此 aslo 将带来额外的准备工作。

    B.R.

    SAL