Chinaunix首页 | 论坛 | 博客
  • 博客访问: 149155
  • 博文数量: 25
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 321
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-26 14:51
文章分类

全部博文(25)

文章存档

2010年(19)

2009年(6)

我的朋友

分类:

2010-05-06 14:46:21

由于MTK自带FLASH只有512K,交易菜单有8级,需要将菜单存入nvram中,参照MTK 中nvram的读写操作一贴,实际应用。

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

{ U16 menulevel; //菜单级别

 U8 menuoptflag; //菜单操作标志

 U8 trancecode; //交易代码

 U8 rechflag; //冲证标识

 U8 functionindex; //功能提示索引

 U8 systemnum; //系统号码序号

 U8 cmdlen[3]; //流程代码长度

 U8 cmddetail[40]; //流程代码

 U16 displaycontentlong; //显示内容长度

 U8 displaycontent[24]; //显示内容

}nvram_dynamic_Message;

2.在 nvram_user_defs.h 文件中的NVRAM_EF_LAST_LID_COMMAPP枚举中添加 NVRAM_EF_DYNAMIC_LID,

#define NVRAM_EF_DYNAMIC_SIZE sizeof(nvram_dynamic_Message)

#define NVRAM_EF_DYNAMIC_TOTAL 512

3.在nvram_user_config.c文件中的logical_data_item_table_cust 结构体数组中添加自己的项

{NVRAM_EF_DYNAMIC_LID,

NVRAM_EF_DYNAMIC_SIZE,

NVRAM_EF_DYNAMIC_TOTAL,

NVRAM_EF_ZERO_DEFAULT,

NVRAM_ATTR_AVERAGE,

NVRAM_CATEGORY_USER,

"MT20",

"000",

"dynamic menu\0",

NVRAM_RESERVED_VALUE

}

4. WriteRecord(NVRAM_EF_DYNAMIC_LID,num,buf,76,&error);
    if(error != NVRAM_READ_SUCCESS)
   {
     dbg_print("error = %x\n",error);
     return; 
    }
  dbg_print("write nvram success!\n");
  
  memset(buf,0,76);
  ReadRecord(NVRAM_EF_DYNAMIC_LID,num,buf,76,&error);
  dbg_print("%x\n",buf[1]);

nvram读写速度比flash还是要慢一些,另外NVRAM_EF_DYNAMIC_LID的大小不能超过76个字节。
阅读(4514) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~