我用官方的例程读写FRAM后,仿真器重新加载后内容全变为0,芯片不掉电仿真器重新加载后被写区域也变0
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.
#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] ;
}
}
重新加载代码时会重新初始化 PERSISTENT 数据。 (复位时不会重新初始化。)为避免这种情况,可以使用 NOINIT [参考CC User Guide (SLAU132U) Sec 5.12.22]。 使用 NOINIT 需要注意:
1) 需要修改CCS download设置“Project->Properties->Debug->MSP430 Flash Settings”更改为“Replacewritten”或“..necessary segment”。(或者使用Information Memory。)
2) 代码必须指定何时初始化该区域,因为它的内容是不确定的。