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。

发布了81 篇原创文章 · 获赞 6 · 访问量 19万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章