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.

[参考译文] MSP430FR6972:有关 FRAM 例程的问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1045938/msp430fr6972-question-about-fram-routine

器件型号:MSP430FR6972

例程: dev.ti.com/.../node

尊敬的团队:

我的客户在使用例程执行 FRAM 读取和写入测试后发现:

运行该例程后、使用仿真器重新加载该例程、并发现写入操作的地址内容全部为0。

他对该程序作了以下修改:

#define WRITE_SIZE 128

#pragma PERSISTENT(FRAM_write)
unsigned char FRAM_write[WRITE_SIZE] = {0};

void FRAMWrite(unsigned char *buff,unsigned char len)
{
unsigned int i=0;

for ( i= 0; i < len; i++)
{
FRAM_write[i] = buff[i];
}

}


void FRAMRead(unsigned char *buff,unsigned char len)
{
unsigned int i=0;

for ( i= 0; i < len; i++)
{
buff[i]= FRAM_write[i] ;
}

此外,他还想知道仿真器是否可以设置框架的某些区域不会被擦除?  如何在指定地址读取和写入 FRAM?

此致

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

    重新加载代码时、会重新初始化持久性数据。 (它在复位时不会重新初始化。) 为避免这种情况、您可以使用 NOINIT [参考 CC 用户指南(SLAU132U)第5.12.22节]。 NOINIT 注意事项:

    1) 1)您应该将 CCS 下载设置"Project->Properties->Debug->MSP430 Flash Settings"更改为"Replace written (替换已写入)"或"..essary seges"。 (或者、使用信息存储器。)

    2) 2)代码必须确定何时初始化该区域、因为其内容是不确定的。