MTK 中的NVRAM读写操作指南

    技术2023-03-29  30

    Nvram操作说明Nvram性质和文件一样,不过,对它进行读写数据,在手机格式化后还存在。1, 在Nvram_user_defs.h的 nvram_lid_cust_enum中添加自定义的lid名称可以用类似格式:NVRAM_MY_DATA_BYTE_ID2,在这个文件中定义一个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”,//对 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。

    最新回复(0)