MTK_NVRAM等操作

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MTK 中nvram 的读写操作

定义NVRAM 数据有三种方式:

(一)、在nvram_editor_data_item.h、nvram_data_item.h、nvram_data_item.c三个文件中添加。

1、在nvram_editor_data_item.h文件中定义自己保存在nvram 中的结构体数据类型。

例如:typedef struct

{

Int a;

Char b;

}my_nvram_data_t;

2、在nvram_data_item.h 文件中的nvram_lid_core_enum 枚举中定义自己的nvram ID(建议在最后面添加,但必须添加到NVRAM_EF_LAST_LID_CORE 的前面)。再定义两个宏,一个宏是前面定义的结构体的字节大小,另一个是在nvram中保存的数据个数,如果在nvram 中只需要保存一个数据的话,就定义为1。

例如:typedef enum

{

……

……

My_nvram_data_lid, //自己定义的nvram ID

NVRAM_EF_LAST_LID_CORE

}nvram_lid_core_enum;

#define my_nvram_data_size sizeof( my_nvram_data_t )

#define my_nvram_data_total 1

3、在nvram_data_items.c文件中的lobical_data_item_table_core 结构体数组中添加自己的项。建议添加在最后,仿照前面的添加。

例如:Itable_entry_struct logical_data_item_table_core[] =

{

……

……

,{

My_nvram_data_lid , //前面定义的枚举ID

my_nvram_data_size , //前面定义的宏,结构体大小

my_nvram_data_total , //前面定义的宏,nvram中数据的个数

NVRAM_EF_ZERO_DEFAULT,

NVRAM_A TTR_A VERAGE,

NVRAM_CATEGORY_USER,

“ MT1D” ,// 根据前面的数据项递增

VER( My_nvram_data_lid ),

“ my nvram test\0” ,//数据描述,只做参考,无其他作用

NVRAM_RESERVED_VALUE

}

, { NVRAM_EF_RESERVED_LID}

}

4、my_nvram_data_t my_nvram_data = {0};

S16 error ;

//将my_nvram_data中的数据写到nvram中My_nvram_data_lid 标志处,error保存错误标志

WriteRecord(My_nvram_data_lid, 1, &my_nvram_data, sizeof(my_nvram_data_t ), & error);

//将nvram中My_nvram_data_lid 标志处的数据读到my_nvram_data中,error保存错误标志

ReadRecord(My_nvram_data_lid, 1, &my_nvram_data, sizeof(my_nvram_data_t ), & error);

二、在common_nvram_editor_data_item.h、nvram_user_defs.h、nvram_user_config.c 中定义

1、common_nvram_editor_data_item.h 此处定义nvram 中保存数据的结构体数据类型

2、nvram_user_defs.h 此处定义nvram ID 和结构体数据大小、数据总数

3、nvram_user_config.c 此处填充nvram 结构数据内容及defult值

(在MTK 下建议使用此方法修改nvram)

(mtk 中nvram 的读写操作(一,二)/epll_apple/blog/item/94b29c22083a14a84723e846.html)

三、在coustom_mmi_default_value.h、common_mmi_cache_config.c中定义

1、在custom_mmi_default_value.h 文件中有三个枚举类型BYTEDATA,

SHORTDATA和DOUBLEDATA。分别占1个字节,2个字节,8个字节。

根据自己的所要保存的数据大小在相应的枚举里定义自己的nvram ID。建议在最后面添加,但都必须添加在最后一项的前面。

例如:typedef enum

{

……

……

Nvram_my_shortdata_id,

NVRAM_LAST_SHORT_ELEMENT

}SHORTDATA;

2、在common_mmi_cache_config.c文件中存在三个结构体数组common_mmi_cache_byte[]、common_mmi_cache_short[],common_mmi_cache_double[]。在对应的数组里添加自己的数据项,设置nvram 的初始值。

例如:mmi_cache_short_entry common_mmi_cache_short[] =

{

……

……

SHORT_ENTRY(Nvram_my_shortdata_id, 0x00, 0x00) ,

相关文档
最新文档