3121|17

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince下将flash中的内容全部读出来~! [复制链接]

硬件:2410 ,64M nandflash,64M RAM

我现在在想在wince下将难道中的内容从地址0,到nandflash结束,全部读出来,
该怎么做!

就好像是给台式电脑做GHOST备份一样,不同的是NANDFLASH为空的地方我们也要读取!

紧急,谢谢
此帖出自WindowsCE论坛

最新回复

路过,很好的点子,回去试试。  详情 回复 发表于 2009-6-20 09:31
点赞 关注
 

回复
举报

54

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
要看你的文件系统是否支持.因为文件系统只能识别被分区的地方,那没有分区的空白区域是无法通过WINCE API访问到的.一般flash都有专用的读写器直接复制芯片内容的,也就是生产时用来做母片的工具。
此帖出自WindowsCE论坛
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
恐怕只能自己写一个简单的flash driver,从头到尾读一遍了。wince的fat文件系统肯定是不能保证按flash的物理地址顺序读的。
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
通过访问Nand Flash控制器应该可以的吧
此帖出自WindowsCE论坛
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

5
 
如果是NOR Flash,我觉得这个想法还不错。
但NAND FLASH本身的结构就会影响到你的实现。

个人意见,仅供参考。
此帖出自WindowsCE论坛
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

6
 
NAND上一层是DISK接口了,不会有相应的API供你读取所有内容的。

如果能修改驱动,那么就让驱动开放一个特殊的IOContrl Code给你,输入地址范围,输出是将地址范围内的数据全部放到指定的buf指针地址去。
此帖出自WindowsCE论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

7
 
我试验一下
谢谢
此帖出自WindowsCE论坛
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

8
 
找了一下,我应该修改底层的什么驱动,来实现,是标准的流接口驱动吗,我没有看见IOCTL的
此帖出自WindowsCE论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

9
 
Nand flash的驱动,修改FMD_OEMIoControl函数
此帖出自WindowsCE论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

10
 
这个可以实现,我是通过修改FMD的驱动来实现 nandflash有ECC数据,你读取的时候要分析一下

看看nandflash的datasheet和你的CPU的nandflash控制,也可以通过App直接操作实现
此帖出自WindowsCE论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

11
 
用bootloader读吧,读完后写到SD卡里,呵呵
此帖出自WindowsCE论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

12
 
是标准的流接口,其实还是用DSK驱动就行,只是你自己设计一个原来没有的IOCONTROL_CODE,通过Device的IOControl()函数传下去时,在NAND FLASH的驱动中的IOControl直接判断,如果满足,就将指定范围的数据都读到指定的地址空间。

9楼的有个小错误,NAND驱动的读函数里已经做了ECC校验了,通过FMD_NAND_READ这样的函数读出来的数据是不需要再ECC校验的。
此帖出自WindowsCE论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

13
 
修改FMD中FMD_OEMIoControl代码,开放FMD_ReadSector/FMD_WriteSector接口访问,然后用DeviceIoControl去访问整个NAND Flash.
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 12 楼 jlctt 的回复:
修改FMD中FMD_OEMIoControl代码,开放FMD_ReadSector/FMD_WriteSector接口访问,然后用DeviceIoControl去访问整个NAND Flash.


明白您的意思了,我觉得也可以这样实现,谢谢提醒,

不过还有一个问题,我会不会把坏块也一起读出来了,每读一个块我是不是都需要检测一下是不是坏块呢
此帖出自WindowsCE论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 13 楼 so927 的回复:
引用 12 楼 jlctt 的回复:
修改FMD中FMD_OEMIoControl代码,开放FMD_ReadSector/FMD_WriteSector接口访问,然后用DeviceIoControl去访问整个NAND Flash.


明白您的意思了,我觉得也可以这样实现,谢谢提醒,

不过还有一个问题,我会不会把坏块也一起读出来了,每读一个块我是不是都需要检测一下是不是坏块呢


是的,需要的
此帖出自WindowsCE论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

16
 
以前咋就这么多好帖子呢?现在牛人都不见了?
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

17
 
做个记号
此帖出自WindowsCE论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

18
 
路过,很好的点子,回去试试。
此帖出自WindowsCE论坛
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表