找回密码
 注册
搜索
查看: 1686|回复: 8

[资料] MTK平台上开辟自己的NVRAM段并初始化

[复制链接]
发表于 2008-7-22 19:13:57 | 显示全部楼层 |阅读模式
看到别人的一个教程,但是我怎么弄都不对。搞定后发现我的和他的过程有点不一样,于是写下来。有兴趣的人可以两个方法都试试。http://lzsong.zhan.cn.yahoo.com/apps/bbs/threadview.html?module_id=19300000010314&bn=IT%E4%B9%8B%E5%AE%B6%E2%80%94%E2%80%94%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91(lzsong)%E7%9A%84%E5%AE%98%E6%96%B9%E8%AE%BA%E5%9D%9B&tid=1



       要配置数据项,添加或删除一个数据项,或者仅修改某个缺省值,参看以下步骤:

1、在nvram_user_defs.h 文件里,定义一个新的逻辑数据项的LID至 nvram_LID_cust_enum 枚举。

2、在 nvram_user_defs.h 文件里,定义两个常量:SIZE 和 TOTAL。

Linear-fixed: total > 1; size为每一条记录的大小
(所谓的linear-fixed实际上就是存放一个单个记录大小为size,记录总数为total的结构体数组)

Transparent: total = 1; size 为每整个区块的大小
(Transparent的意思就是一个大的字串)

注意:由于Flash设备驱动的约束,size定义必须为偶数对齐。

3、模仿logical_data_item_table_cust中已有的记录来增加自己的记录

1〉  LID

2〉  Size

3〉  Total

4〉  Default value:必须为NVRAM_EF_ZERO_DEFAULT,或者NVRAM_EF_FF_DEFAULT,建议用前一个

其余的都仿照原来的记录来填写,特别注意VER(NVRAM_EF_CACHE_BYTE_LID),
有一个NVRAM_EF_CACHE_BYTE_LID_VERNO的字符串宏与之对应。据说每次改动默认值之后西欧需要改这个版本号。

4、默认值输入
将默认值建成一个全局的数组,将数组名填写到custpack_nvram_ptr中,注意顺序不要搞乱了

5、操作
通常在代码中,用ReadValue和WriteValue来读写
在task初始化代码中,需要用nvram_external_read_data来读取


修改完后最要new一下。据说还要同步修改编译的版本号。改了肯定对,不改对不对就不知道了。


注意事项:

1.数据项的Size 定义必须为偶数对齐,最大为 65535。

2.Linear fixed 数据项的最大记录数为 65535.
      以上的最大值为理论值,可能会因为超出Flash空间而不能正常工作,依赖于Flash设备驱动配置。此外,一部分空间是为协议栈使用,用户可配置的数据项是受限制的。
       当前,测试的安全值如下:
1.  Size 最大 480
2.  Total 最大300
3.  用户可配置的数据项最大值 25


3.2 Fields in Primitives 原语中的域
1.当发送 read/write 请求原语至 NVRAM 任务,如果数据项为 transparent, ’para’ 域必须为 1;
2. 当发送 write 请求原语至NVRAM任务, 被写入的数据的大小 size 必须等于在nvram_user_config.c中定义的数据项的大小 size.
3. read/write 确认原语成功返回值 ‘result’ 域为:NVRAM_ERRNO_OK, NVRAM_ERRNO_INIT.


[em08]
发表于 2008-7-23 06:04:28 | 显示全部楼层
谢谢楼主分析!
点评回复

使用道具 举报

发表于 2009-4-30 17:38:14 | 显示全部楼层
兄弟,请教一下,你修改成功后的LID数值是否可以通过META读出来?
点评回复

使用道具 举报

发表于 2010-4-28 15:31:07 | 显示全部楼层
可以的,要是LID数值不一样是不能去读的!
点评回复

使用道具 举报

发表于 2010-5-13 13:01:55 | 显示全部楼层
来定这个帖子的
点评回复

使用道具 举报

发表于 2010-5-15 09:57:47 | 显示全部楼层
继续留下今天来个的痕迹[em01]
点评回复

使用道具 举报

发表于 2010-5-19 20:26:49 | 显示全部楼层
在2308A上nvram初始化会加大BIN的大小,请问是不是必须初始化的??
点评回复

使用道具 举报

发表于 2010-5-25 00:27:04 | 显示全部楼层
好东西 谢谢
点评回复

使用道具 举报

发表于 2010-6-12 15:09:55 | 显示全部楼层
学习中~~[em07][em08][em08][em08]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-1-24 14:05 , Processed in 0.061631 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表