大家好、
我正在为客户开发基于 MSP430FR5728的应用。
在 应用中、计数器数据在 正常操作中存储在 FRAM 中。
复位后、在再次初始化所有外设之前、我需要知道 FRAM 上是否有任何保留的数据。
- 如何检查 FRAM 中是否有任何有效的计数器数据或前一周期中的保留数据?
- 执行此检查的步骤或程序是什么?
谢谢
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.
大家好、
我正在为客户开发基于 MSP430FR5728的应用。
在 应用中、计数器数据在 正常操作中存储在 FRAM 中。
复位后、在再次初始化所有外设之前、我需要知道 FRAM 上是否有任何保留的数据。
谢谢
FRAM 的工作方式与 RAM 类似、因此您只需读取数据即可。 本质上、您声明位于 FRAM 中的变量(根据上面 E2E 帖子中的示例)、并像读取变量位于 RAM 中一样进行读取。
使用上述示例之一、下面介绍了它的工作原理。 请注意、最好使用写保护设置来防止 FRAM 变量被覆盖、但在本示例中、假设写保护被禁用。 另请注意、无论写入保护设置如何、您都可以读取 FRAM 变量。
/* * Example * Declare variable 'apple' in FRAM */ #pragma PERSISTENT(apple) uint16_t apple = 0; // A variable in RAM uint16_t pie; /* * Note: it is always recommended to write protect your data in FRAM using the write-protection mechanism. * For simplicity, FRAM write protection is assumed to be already disabled in this example. */ int main(void) { WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer apple = 0xAA55; // write a value the variable in FRAM pie = apple; // read the value from the variable in FRAM and place (copy) into RAM variable while(1); }
尊敬的 Dennis:
感谢您的解释。
我在 该文档中有关于 FRAM 和链接器命令文件的另一个查询:
本文档中提到、默认情况下变量存储在 SRAM 中、要将变量从 SRAM 移到 FRAM、需要修改链接器命令文件。
我的查询是,使用#pragma 指令在 FRAM 中分配变量是否足够,以及是否应该修改链接器
命令文件?
尊敬的 Dennis:
感谢您的回答。
在我的应用程序中、除了"用户信息"段之外、我仅使用与用户指南(常量、变量和程序代码)中所述相同的三个段。
但根据 我的需要、我必须将每个段的大小修改为:
-段1 -[常量] - C000h - C3FFh - 1.023 KB
-段2 -[变量] - C400h - CBFFh - 2.047 KB
-段3 -[程序代码] - CC00h – FFFFh - 13.311 KB
正如您在前面的注释中提到的、我是否还应该修改连接器命令文件、以便对 现有段进行上述修改?