MTK 中的NVRAM读写操作指南

Nvram操作说明
Nvram性质和文件一样,不过,对它进行读写数据,在手机格式化后还存在。
1, 在Nvram_user_defs.h的 nvram_lid_cust_enum中添加自定义的lid名称可以用类似格式:NVRAM_MY_DATA_BYTE_ID
2,在这个文件中定义一个lid的size和total.
           #define NVRAM_MY_DATA_SIZE     512 //一个数据块的大小byte
#define NVRAM_MY_DATA_TOTAL  1//有多少个这样的数据块
3,在Nvram_user_config.c中的logical_data_item_table_cust[]=
{}添加一个类似于此的结构
{
NVRAM_MY_DATA_BYTE_ID,
   NVRAM_MY_DATA_SIZE,
   NVRAM_MY_DATA_TOTAL,
   NVRAM_EF_ZERO_DEFAULT,(NVRAM DATA ITEM 的默认值,可以自定义默认值
   NVRAM_ATTR_AVERAGE,      
   NVRAM_CATEGORY_USER,   //属性
   “CT03”,
   “000”,// 与上一个合并成的版本号使用
“MYDATA\0”,//对 dataitem 的描述
NVRAM_INVALID_VALUE
}
4,用下面的方法可以读写Nvram的值了。
ReadRecord(nFileId,nRecordId,pBuffer,nBufferSize,pError);//读取数据
WriteRecord(nFileId,nRecordId,pBuffer,nBufferSize,pError);//写数据
        读写例子如下:
ReadRecord (NVRAM_MY_DATA_BYTE_ID,1, &value,1,&error);
WriteRecord(NVRAM_MY_DATA_BYTE_ID,1, &value,1,&error);
参数介绍如下:第一个就是自定义的id,第二个是从第几个开始读写(NVRAM_MY_DATA_TOTAL),第三个是要写入的值,第四个是写入几个字节数据,第五个error是个S16的值,注意变量类型。

5,也可以用以下方式读写格式化数据:
        DS_BYTE = 1,//读取一个字节
   DS_SHORT = 2,//读取short
   DS_DOUBLE = 8//读取double
        WriteValue(NVRAM_MY_DATA_BYTE_ID,(void*)&k,DS_SHORT,&fileerror);
        ReadValue(NVRAM_MY_DATA_BYTE_ID,(void*)&i,DS_SHORT,&fileerror);
        注意第三个参数为你想读写的类型,比如short。

posted on 2012-02-06 12:02  杨军_JuRin  阅读(739)  评论(0编辑  收藏  举报

导航