|
发表于 2010-9-13 20:45:00
|
显示全部楼层
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。 |
|