在MTK读写NVRAM的时候要指定TOTAL和SIZE 比如下面的:
#define NVRAM_SRS_ADJUST_TOTAL 4
#define NVRAM_SRS_ADJUST_SIZE (sizeof(NVRAM_SRS_ADJUST_SETTING_S))
{
NVRAM_SRS_ADJUST_SETTING_LID,
NVRAM_SRS_ADJUST_SIZE,
NVRAM_SRS_ADJUST_TOTAL,
NVRAM_NORMAL(NVRAM_SRS_ADJUST_SETTING_DEFAULT),
NVRAM_ATTR_AVERAGE, //指定属性比如备份
NVRAM_CATEGORY_MULTI_DEFAULT , //指定文件的目录
"srs", //文件名的前部分 文件名的组成是:"yosc_test" + "-" + "版本号"
VER(NVRAM_SRS_ADJUST_SETTING_LID), //版本
"srs adjust setting", //描述
NVRAM_APP_RESERVED //默认是这个
}
需要特别注意的是其中的 NVRAM_CATEGORY_MULTI_DEFAULT 这个属性。
用这个属性的目的是为了保存我们的NVRAM项的多条记录的默认值,比如我上面的TOTAL是4 。我要保存4条记录的默认值 , 如果这里面我用NVRAM_CATEGORY_USER来代替NVRAM_CATEGORY_MULTI_DEFAULT那么最后只能保存第1条记录的默认值。 后面的3条会用第1条的默认值覆盖。 有兴趣可以试试~
NVRAM还有一些需要特别注意的属性比如NVRAM_ATTR_MULTIREC_READ这个可以允许我们一次性读多条记录。