找回密码
 注册
搜索
查看: 1039|回复: 9

[讨论] NVRAM关于 SIZE 解释的疑惑

[复制链接]
发表于 2010-3-9 21:31:44 | 显示全部楼层 |阅读模式
最近一个nv默认值读出来一部分是错误的,查找原因,原来时分配的size太小造成的.

mtk文件中有如下描述
* Each logical data item must be:
* 1> Size must be EVEN
* 2> Size of default value must be equal to the logical data item's size.

请问
1. 1> Size must be EVEN是什么意思,这里的even何解?
2.这里说定义lid时size必须和item data大小相等,但我看代码中并非所有的都相等,比如:
   {
        NVRAM_EF_PHB_LID,
        NVRAM_EF_PHB_SIZE,//116
        NVRAM_EF_PHB_TOTAL,
        NVRAM_NORMAL(NVRAM_EF_FF_DEFAULT),//kal_uint8 const NVRAM_EF_FF_DEFAULT[] = { 0xFF };
一个116byte,一个1byte,这是什么原因
3.NV的两种类型:Transparent EF和Linear fixed EF,如何从定义中区分二者,二者有哪些不同?

请达人指教,TKS!
发表于 2010-3-9 22:26:57 | 显示全部楼层
1. * 1> Size must be EVEN
表示每一个逻辑数据单元大小必须是相同的(EVEN为平均的意思)
2.Size of default value must be equal to the logical data item\'s size.
如果给逻辑数据单元设置默认值,那么默认值所占用的空间大小必须与逻辑数据单元的数据结构大小一致。
注:logical data item = 逻辑数据单元
点评回复

使用道具 举报

发表于 2010-3-10 12:02:32 | 显示全部楼层
楼上正解![em26]
点评回复

使用道具 举报

 楼主| 发表于 2010-3-10 13:49:06 | 显示全部楼层
谢谢clxk1207的解答,但是你的第二个解释
不正和我说的第2条矛盾吗?
点评回复

使用道具 举报

发表于 2010-3-10 22:32:22 | 显示全部楼层
以下是引用Justinyue在2010-3-10 13:49:06的发言:
谢谢clxk1207的解答,但是你的第二个解释
不正和我说的第2条矛盾吗?

NVRAM_EF_PHB_LID 实质上对应于结构体nvram_ef_phb_struct
NVRAM_EF_PHB_SIZE 由于手头没有代码,个人只能猜测一下,这个值可能正是sizeof(nvram_ef_phb_struct(不能确定,还得看看代码确认下),lid的size必须和item data 大小相等,没猜错的话应该指这里。

NVRAM_EF_PHB_TOTAL 可能和一次写入多个nvram_ef_phb_struct相关
点评回复

使用道具 举报

 楼主| 发表于 2010-3-15 19:35:27 | 显示全部楼层
再次感谢clxk1207

[em15][em15]
点评回复

使用道具 举报

发表于 2010-3-24 12:15:50 | 显示全部楼层
学习了////////
点评回复

使用道具 举报

发表于 2010-5-12 20:47:22 | 显示全部楼层
很不错的,我按着你的解释看了下代码,很清晰
点评回复

使用道具 举报

发表于 2010-5-12 21:52:44 | 显示全部楼层
学习了,谢谢
点评回复

使用道具 举报

发表于 2010-5-19 14:12:19 | 显示全部楼层
会不会说size 必须为偶数啊
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

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

GMT+8, 2025-2-26 04:22 , Processed in 0.048647 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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