9980|31

78

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

MLC NandFlash K9G8G08 的问题 [复制链接]

环境:Eboot + Wince 6.0,pxa270 CPU,Samsung K9G8G08 1G Bytes NandFlash。
现象:在nandflash存储的数据丢失。
往nandflash里面拷贝程序,都可用。但是一重启就丢失了。
nandflash分为两个部分,一部分为binfs格式,存储操作系统。另一部分为fat格式,当做存储盘用。
MBR 存在 block 1,从打印信息来看正常。
还有就是当存储的东西多点之后,100兆,下次启动的时候,就没有了nandflash盘符,也就是存储部分都消失了,而东西少的
时候重启丢失数据,但是盘符还在,存储区也在。

最新回复

现在按照这样的步骤做 1. 用你的应用程序测试大概500次左右的时候,关机重启,然后把fat volume的dbr打印出来; 2. 如果发现dbr和关机之前不一致则尝试找到dbr所在的block.page,并检测其在什么时候遭到破坏,这样你就可以准确知道了分区破坏的时间点和相关的操作行为 3. 接下来就好说了  详情 回复 发表于 2009-11-10 20:00
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
请大家给个思路啊,开始的时候觉得可能是分区的时候的问题,后来把binfs格式部分改大了,
结果还是不行,应该说不是某个block分成了2半,都是完整的。
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
是否在存储数据的时候MBR出现了问题,导致重启的时候检测MBR失败,然后重新格式化并建立分区,导致数据丢失,看下打印信息,可能会有收获
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

4
 
你是用CE6的R2还是之前的版本?操作系统用的是TFAT吧?
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 2 楼 veabol 的回复:
是否在存储数据的时候MBR出现了问题,导致重启的时候检测MBR失败,然后重新格式化并建立分区,导致数据丢失,看下打印信息,可能会有收获

谢谢,我觉得不是这个问题。因为如果是检测失败重新格的话,时间会很长。而我的启动之后时间并不长。而且打印信息显示检测MBR是正确的。我把第一次些MBR和重启的打印信息贴一下
第一次
[0]: Address=0x80100000  Length=0x1FB11E4  Name="" Target=RAM
ROMHDR at Address 80100044h
g_BINRegionInfo.dwNumRegions: 0x1
INFO: dwBINFSPartLength=0x4000000
IsValidMBR: MBR sector = 0x80
OpenPartition: Partition Exists=0x0 for part 0x21.
CreatePartition: Enter CreatePartition for 0x21.
LastLogSector: Last log sector is: 0x7ff7f.
CreatePartition: Start = 0x80, Num = 0x8001.
Log2Phys: Logical 0x80 -> Physical 0x100
WriteMBR: MBR block = 0x1.
BP_SetDataPointer at 0x0
WriteData: Start = 0x0, Length = 0x1fb11e4.
Log2Phys: Logical 0x80 -> Physical 0x100
IsValidMBR: MBR sector = 0x80
OpenPartition: Partition Exists=0x0 for part 0xb.
CreatePartition: Enter CreatePartition for 0xb.
FindFreeSector: FreeSector is: 0x8081 after processing part 0x21.
CreatePartition: Num sectors set to 0x77980 to allow for compaction blocks.
CreatePartition: Start = 0x8100, Num = 0x77980.
WriteMBR: MBR block = 0x1.
Writing image to flash complete.
Download successful!  Jumping to image at 0x80101000 (physical 0xA0101000)...
Got EDBG_CMD_JUMPIMG
Got EDBG_CMD_CONFIG, flags:0x00000000



Windows CE Kernel for ARM (Thumb Enabled) Built on Jan 21 2009 at 18:02:34
INFO:OALLogSetZones: dpCurSettings.ulZoneMask: 0xb
NandFMD_Init
NandFMD:ReadID (Maker=ec,Device=d3)
NandFMD_Init Return
重启后
System ready!
Preparing for download...
INFO: Using device name: 'MAINSTN17493'
IsValidMBR: MBR sector = 0x80
OpenPartition: Partition Exists=0x1 for part 0x21.
INFO: Loading kernel image from SmartMedia(address=0x80100000, length=0x1EF6EDC,
launch address=0x80101000)...
BP_SetDataPointer at 0x0
ReadData: Start = 0x0, Length = 0x1ef6edc.
Log2Phys: Logical 0x80 -> Physical 0x100
Download successful!  Jumping to image at 0x80101000 (physical 0xA0101000)...



Windows CE Kernel for ARM (Thumb Enabled) Built on Jan 21 2009 at 18:02:34
INFO:OALLogSetZones: dpCurSettings.ulZoneMask: 0xb
NandFMD_Init
NandFMD:ReadID (Maker=ec,Device=d3)
NandFMD_Init Return
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
你如果是R2之前的CE,又用MLC,出现这种问题是正常。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 3 楼 bearbrotherji 的回复:
你是用CE6的R2还是之前的版本?操作系统用的是TFAT吧?

用的是CE6的R2,但驱动用的是FMD。
NK是烧到BINFS分区里的。
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 5 楼 bearbrotherji 的回复:
你如果是R2之前的CE,又用MLC,出现这种问题是正常。
我在网上也找到说是fmd不支持MLC的nandflash,说要改FAL层?这个不太清楚了
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

9
 
还是找找PM的吧
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 veabol 的回复:
还是找找PM的吧
PM的是什么意思?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 
关注
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

12
 
PocketMory
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 5 楼 bearbrotherji 的回复:
你如果是R2之前的CE,又用MLC,出现这种问题是正常。

难道这个是必然的,没有解决办法?
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

14
 
貌似6.0里Nandflash的MDD+PDD的驱动可以支持MLC了。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

15
 
配置问题~~~
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 14 楼 programmerno1 的回复:
配置问题~~~
不明白说的是哪部分??
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(中级)

17
 
CE的R2已经支持MLC了。这样吧,你把系统对SECTOR写的SECTORINFO打出来看一下,看看到底对同一个SECTOR写了几次SECTORINFO,分别写的是什么,这样就知道是不是MLC的问题的。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

18
 
引用 15 楼 waterdream0820 的回复:
引用 14 楼 programmerno1 的回复:
配置问题~~~
不明白说的是哪部分??


从你问题描述提供的一点思路,认为跟环境配置参数值设置有关
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

19
 
1. 有可能是驱动架构的问题,即fal里面的代码在操作slc和mlc的差异造成的
2. 如果是lz操作硬件方式不对的话,os也应该有概率的存在坏掉的情况,但是并没有出现,操作hw方式不对的可能性比较小
---------------------------------------
我觉得lz可以先验证一下问题的根源在那里
1. lz提到放置文件比较少的时候,重启盘符还在,文件没了
很可能是分区被格式化掉了,lz先在fmd的代码中打印一下开机时候被格式化的block的号,看一下这些是否在文件系统分区

2. 另外,你上面提到“还有就是当存储的东西多点之后,100兆,下次启动的时候,就没有了nandflash盘符,也就是存储部分都消失了,而东西少的
时候重启丢失数据,但是盘符还在,存储区也在。”,确认一下,发生问题的概率和文件个数的多少有关系么
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

20
 
引用 16 楼 bearbrotherji 的回复:
CE的R2已经支持MLC了。这样吧,你把系统对SECTOR写的SECTORINFO打出来看一下,看看到底对同一个SECTOR写了几次SECTORINFO,分别写的是什么,这样就知道是不是MLC的问题的。
不好意思啊,过了个周末,一会打印出来。每次烧写eboot,重新格式化nandflash时间挺长的
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表