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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章