主题中讨论的其他器件: MSP430F5232
各位专家:
我将 MSP430FR5972控制器用于我的项目、我希望将数据记录到信息存储器中、因此我需要有关如何将数据写入信息存储器的信息、或者我们可以直接访问信息存储器。
是否有任何代码片段可用于显示如何将数据写入信息存储器。
我想知道 信息存储器的 A 段是如何与所有其他段分开锁定的。(与控制器 MSP430F5232中的段类似)。
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.
各位专家:
我将 MSP430FR5972控制器用于我的项目、我希望将数据记录到信息存储器中、因此我需要有关如何将数据写入信息存储器的信息、或者我们可以直接访问信息存储器。
是否有任何代码片段可用于显示如何将数据写入信息存储器。
我想知道 信息存储器的 A 段是如何与所有其他段分开锁定的。(与控制器 MSP430F5232中的段类似)。
您好、Himanshu、
感谢您发帖。 您可以使用定义一个数组并将其设置为放置在信息存储器中、例如:
#pragma DATA_SECTION (loggingData、".infoD") unsigned char loggingData[128];
然后、您可以像访问 RAM 中的任何阵列一样访问 logingData (例如、logingData[x]= 42;//将42写入到索引 x 中的 logingData) -由于这是一个 FRAM 器件而不是闪存、因此您不必像处理 MSP430F5232上的闪存控制器那样进行特殊处理。 但是、在这种情况下、您还需要修改 MPU (存储器保护单元)设置、以便信息存储器具有读取+写入访问权限(MPU 工具中的默认设置是信息存储器的只读访问权限)。 如果您愿意、我可以为您提供有关如何执行该操作的更多详细信息、 但首先、我想确保使用信息存储器是适合您的用例的解决方案、并确保我为您尝试执行的操作提供正确的建议。
我想进一步了解您的数据记录-您需要多少数据记录空间? 我问您需要多少空间是因为信息内存的每个部分只有0x80字节。 但是、由于这是一个 FRAM 器件、因此您可以根据需要轻松使用更大的 FRAM 进行数据记录。 使用 FRAM、您不必在闪存器件上执行任何特殊处理: 在闪存器件中、信息存储器尤为重要、因为您必须先擦除闪存、然后才能写入闪存-使用信息存储器、您可以擦除该区域而不会有擦除代码的风险。 而在 FRAM 器件上、您可以不必担心地使用主 FRAM、因为写入前无需擦除、并且我们提供了 MPU (存储器保护单元)来防止您意外覆盖应用代码。 MPU 允许您将主 FRAM 分区为最多3个段、并为 每个段设置访问权限(读取、写入、执行)。 我们通过在 CCS 中提供自动存储器分区和 MPU 设置方法来简化这一过程。 只需使用#pragma PERSISTENT 将任何要读取+写入可访问的数组等(例如、记录数据)放置到.persistent 区域中。
#pragma PERSISTENT (logingData) unsigned char logingData[2000]={0};
在这种情况下、您可以将 MPU 工具中的所有内容保留为默认值、该工具位于 MPU 选项卡上的 Project > Properties > General 中(将其保留为"enable MPU"和"let compiler handle memory partitioning...")。 记录数据将在电源循环期间保留、您不必再进行任何进一步的特殊处理、只需将其视为 RAM 中的正常阵列即可。 这使您可以在需要时在日志数据中拥有更多数据、并且无需进行任何修改即可为项目正确设置 MPU。
此致、
Katie
您好、Himanshu、
感谢您提供更多信息。 您可以在 CCS 中包含的 MPU 工具中非常简单地进行更改。 转至 Project > Properties > General。 选择"MPU"选项卡。
选择启用存储器保护单元(MPU)、然后选择"手动指定存储器段边界和访问权限"。 如果您的所有主 FRAM 区域仅用于常量和代码、则我们可以通过将边界设置为0x4400 (FRAM 的开头) 并将权限设置为读取+执行来为所有主存储器设置一个段。 然后、对于信息存储器、选择"读取+写入权限"、以便您可以将信息存储器用于变量。 请参阅显示这些设置的屏幕截图:
这应该是您必须做的所有事情。 现在、您可以将日志记录数据放入信息 D 段中、正如我在上一篇文章中所示。
此致、
Katie