- 浏览: 37036 次
- 性别:
- 来自: 安徽
最新评论
在这里我只说在项目中常用的一种添加NVRAM方式。
(1)在Nvram_user_defs.h中定义LID NVRAM_EF_EDUCATION_LID
NVRAM 中的数据是在 fs 文件系统的管理中操作的,而文 件操作需要识别数据项和管理数据项,都是通过这个 LID 来操作的。
(2)在Nvram_user_defs.h中定义size和total,
NVRAM_EDUCATION_DATA_SIZE 4:相当于一个内存块的大小
NVRAM_EDUCATION_DATA_TOTAL 1:一共有几个内存快
(3)定义NVRAM项Version 在Custom_nvram_editor_data_item.h中定义 #define NVRAM_EF_EDUCATION_LID_VERNO "001"
文件系统是怎么知道 它所管理的这些 NV 数据已经改变了呢?就是通过这个版本号来识别的,比如你修改了某个 NV 数据但没有更该它的版本号,文件 系统是不会对原始数据更改的;只有在更改了 NV 值并且修改了版本号,这时文件系统才识别到已经更改,并进行相应的数据更新 。
(4)定义NVRAM默认值使用默认的可以不用定义
(5)
在Nvram_user_config.c中使用
{
NVRAM_EF_EDUCATION_LID ,
NVRAM_EDUCATION_DATA_SIZE,
NVRAM_EDUCATION_DATA_TOTAL,
NVRAM_NORMAL(NVRAM_EF_ZERO_DEFAULT),这里就使用系统内的默认值
NVRAM_ATTR_MULTIREC_READ,
NVRAM_CATEGORY_USER,
"CT05",这里要注意这个序号,跟着上面那个来,上面那个如果是CT04这里就写CT05,这可不要认为是自己随便写
VER(NVRAM_EF_EDUCATION_LID),
"Education\0",这个可以随便写
NVRAM_RESERVED_VALUE
}
最主要说的就是我们使用的读写方法,有两个WriteValue/ReadValue或是WriteRecord/ReadRecord。但是这里只能使用WriteRecord/ReadRecord,如果使用WriteValue/ReadValue就会出现复位现象。而且要注意在使用的时候这里的大小不能使用DS_BYTE /DS_SHORT/DS_DOUBLE,要用我们上面定义的 NVRAM_EDUCATION_DATA_SIZE。
ReadRecord(
NVRAM_EF_EDUCATION_LID ,
1,//表示你使用到那一块内存
(&read_buff,
NVRAM_EDUCATION_DATA_SIZE,//注意这里不能使用DS_BYTE /DS_SHORT/DS_DOUBLE这三个 。
&pError);
WriteRecord使用方法一样。
要想使用WriteValue/ReadValue可以,修改两个文件custom_mmi_default_value.h和Common_mmi_cache_config.c中
在custom_mmi_default_value.h中定义LID NVRAM_MY_EDUCATION_UN, 注意在这个文件中有有三个枚举变量,分别是BYTEDATA,SHORTDATA,DOUBLEDATA,每一个枚举变量都对应在Mmi_frm_nvram_gprot.h中的
typedef enum
{
/* Corresponding to NVRAM_EF_CACHE_BYTE_LID. */
DS_BYTE = 1,
/* Corresponding to NVRAM_EF_CACHE_SHORT_LID. */
DS_SHORT = 2,
/* Corresponding to NVRAM_EF_CACHE_DOUBLE_LID. */
DS_DOUBLE = 8
} DATASIZE;
在 Common_mmi_cache_config.c文件中定义
SHORT_ENTRY(NVRAM_MY_EDUCATION_UN ,
NVRAM_APP_PHNSET,
NVRAM_CACHE_ID_RESERVED,
#ifdef _SETTING
NVRAM_COMMON_AVERAGE |NVRAM_COMMON_FACTORY_RESTORE|NVRAM_COMMON_USER_RESTORE ,
#else
KAL_TRUE,
#endif
"EDUCATIONLID",
0xFF,0xFF),
注意在这个文件中有三个数组,分别是common_mmi_cache_byte[],common_mmi_cache_short[] ,common_mmi_cache_double[]和上面LID定义中的BYTEDATA,SHORTDATA,DOUBLEDATA想对应起来
所以这里别忘了放错地方了。
定义好之后就可以使用WriteValue/ReadValue函数了,而且第三个参数可以相应的是DS_BYTE ,DS_SHORT ,DS_DOUBLE ,这里要注意之前LID定义在哪里就要相应的使用哪个,不要说在custom_mmi_default_value.h文件中定义的LID是在这个 SHORTDATA枚举类型中的,那么在使用WriteValue/ReadValue函数时第三个参数就要使用DS_SHORT,不然会出现复位现象。
发表评论
-
PPPD拨号返回结果码
2015-09-18 11:12 68100: pppd已经断开,或者已经成功建立连接后请求方又中 断 ... -
3G相关定时器说明
2014-08-06 10:05 838计时器和计数器RNC 计 ... -
PDP激活被拒绝原因码表
2012-07-19 20:55 2754om: http://wireless.agilent.com ... -
PDP激活被拒绝原因码表
2012-07-19 20:15 0方便查询:这些值是真正的原因,但要注意分析问题时尤其对二次开发 ... -
TCP重传
2012-07-03 20:23 1125为什么TCP存在重传 TCP是 ... -
MTK NVRAM
2012-06-28 19:50 1615nvram是程序用来搭建FAT文件系统的那一块,是fla ... -
TBF与PDP激活
2012-06-18 21:28 1153PDP先激活,CCCH上下行TBF建立流程如下:1、下行TBF ... -
C语言中的内存对齐问题
2012-05-29 10:31 754.C语言中的内存对齐 ... -
MTK内存管理
2012-04-20 00:36 4532MTK 内存管理 分类: MTK2011- ... -
MTK Timer
2012-04-18 14:33 40821. GPTI_StartItem 要精准很多,但是只能 ... -
WinSocket编程——原始套接字[转]
2012-03-26 09:23 4852WinSocket编程——原始套接字[转] ... -
TCP三次握手各种异常
2012-03-20 11:04 1363和TCP三次握手有关的面试题 分类: 网络 ... -
Windows API串口编程参考
2012-03-15 14:12 3350Windows API串口编程参 ... -
V.24 & V.35
2012-03-12 20:25 918V.24 & V.35 (2011-08 ... -
【C语言】while与for执行效率对比【转】
2012-03-12 19:00 1589【C语言】while与for执行效率对比【转】 C语言 ... -
[转]ASCII,Unicode,UTF-8,GB2312编码之间的关系
2012-03-12 18:59 902[转]ASCII,Unicode,UTF-8,GB231 ... -
MTK获取基站的cell_id 【转】
2012-02-29 10:07 1026MTK获取基站的cell_id 博客分类 ... -
MTK的HTTP连接方式
2012-02-29 10:08 843MTK的HTTP连接方式 博客分类: ... -
MTK中怎样创建和使用lib
2012-02-28 17:17 696MTK中怎样创建和使用lib 博客分类: MT ... -
MMI 和L4通信【转】
2012-02-28 17:16 1097MMI 和L4通信 博客分类: MTK ...
相关推荐
NVRAM 的添加方法 以闹钟INLINE 菜单为例 步骤如下: 1.在Nvram_common_defs.h 文件中添加LID 选项到nvram_lid_co mmapp_enum 枚举中 NVRAM_EF_MY_LID, /* Add LID with its compile optoin in the tail ...
非常好的nvram介绍,包含了flash,nand,nor等等,还有介绍包括浮栅三极管的一些知识
android下NVRAM的读写例程,有这方面开发需求的可以参考下,通过一个服务对NVRAM进行读写
MTK_NVRAM_Editor的源码,可能对你们有用哦
MTK平台NVRAM的机制,讲解十分详细,很是有用
Professional.nvram
linux下的nvram驱动源码,物有所值
Linux kernel nvram 驱动代码
MTK最新资料关于NVRAM操作的介绍MTK最新资料关于NVRAM操作的介绍
在手机行业经常会说到NVRAM存储,应该对NVRAM的硬件需了解一点.以下就是对NVRAM的hardware的来源和分类.
1.ROM(Read Only Memory\只读存储器):通常用来存储操作系统和内置程序,相当于MTK的Code Region,这部分的内容是写入后不允许修改的;...3.NVRAM(NonVolatileRandomAccessMemory\非易失性随机访问存储器)
Android 系统访问NVRAM 的服务和客户端例程
在路由器中nvram是一个分区,本文就是实现对nvram分区的操作。
lenovo p1ma40 nvram flash with miracle box infinity cm2 or ultimate multitool mtk modulle
android下学习 NVRAM的好资料
1.把下载下来的“JTAG.rar”里面的JTAG文件夹解压到C般跟目录。 2.选择“开始”-“运行”,写入“%systemroot%\...一般我们只要清除NVRAM之后路由就可以正常启动了,也可以清NVRAM和清kernel之后重新TFTP刷固件进去就行
修补iOS内核以允许访问所有nvram变量
初学者必备良药,学MTK NVRAM的必看,相当很非常十分好的东西