daor
驱动牛犊
驱动牛犊
  • 注册日期2001-05-16
  • 最后登录2018-04-15
  • 粉丝0
  • 关注0
  • 积分-25分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2008回复:11

做u盘的一些问题(坏块管理等)

楼主#
更多 发布于:2002-11-27 15:48
    在win2k环境下,做u盘时,pc端的驱动程序和设备端的
固件程序需要做坏块管理吗?
    另外,ddk中关于Storage Drivers的资料那么多,我该看哪些部分?用DriverStudio好不好摆平(我用这个比较习惯)?
    请知情大侠给我指点指点,感激不尽!
    
xjtanh
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-27 16:01
pc端的驱动程序不需要,但设备端的固件程序需要做坏块管理。
有空的话,你都可以看一下,对你还是有帮助的

DriverStudio还行,他产生了一个基于C++的框架,但有些代码还是要你自己来添加,就像MFC一样。
daor
驱动牛犊
驱动牛犊
  • 注册日期2001-05-16
  • 最后登录2018-04-15
  • 粉丝0
  • 关注0
  • 积分-25分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-27 16:38
    如果由固件来做坏块管理的话,那么flash的地址影射算法
就会有点复杂,而且读写速度也受影响。
    我们的猜测是,win2k的某一层系统已经有了坏块管理功能,
当发现坏块时,windows会修改fat表上的文件链接,使它避开坏块,
以后windows对u盘进行访问时,就会发出正确的逻辑地址,而不会
对坏块进行读写操作。
    不知道我的猜测有无可能?
    谢谢!
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-27 17:15
刚才写了许多,但网断了,又得重写一次 :(

我的U盘是没有坏块管理的,因为Fat读写是Windwos自己的事,因此,如果你的Flash中有坏块,你应该在格式化的时候在对应的文件分配表项中标出来(即手工将Fat表中的对应项标为已坏),这些Windows在分配空间的时候就不会分配,

在实际存取文件的时候,PC机会给出数据,并告诉写到哪里,你只要保证可以成功写入就可以了.

我所指的格式化是指你的固件对Flash进行格式化,Windows系统的格式化我不知道为什么总是讲我的U盘格式化不成功.
飞天猩猩
驱动巨牛
驱动巨牛
  • 注册日期2001-09-24
  • 最后登录2008-06-17
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望22点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-27 17:20
刚才写了许多,但网断了,又得重写一次 :(

我的U盘是没有坏块管理的,因为Fat读写是Windwos自己的事,因此,如果你的Flash中有坏块,你应该在格式化的时候在对应的文件分配表项中标出来(即手工将Fat表中的对应项标为已坏),这些Windows在分配空间的时候就不会分配,

在实际存取文件的时候,PC机会给出数据,并告诉写到哪里,你只要保证可以成功写入就可以了.

我所指的格式化是指你的固件对Flash进行格式化,Windows系统的格式化我不知道为什么总是讲我的U盘格式化不成功.

瘟悼司是不会给你管理坏块的。
daor
驱动牛犊
驱动牛犊
  • 注册日期2001-05-16
  • 最后登录2018-04-15
  • 粉丝0
  • 关注0
  • 积分-25分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-27 17:46
 
刚才写了许多,但网断了,又得重写一次

我的U盘是没有坏块管理的,因为Fat读写是Windwos自己的事,因此,如果你的Flash中有坏块,你应该在格式化的时候在对应的文件分配表项中标出来(即手工将Fat表中的对应项标为已坏),这些Windows在分配空间的时候就不会分配,

在实际存取文件的时候,PC机会给出数据,并告诉写到哪里,你只要保证可以成功写入就可以了.

我所指的格式化是指你的固件对Flash进行格式化,Windows系统的格式化我不知道为什么总是讲我的U盘格式化不成功.
--------------------------------------------------------------------------------


    你说你能把坏块信息写到fat中去?fat好象没有存储这种信息的地方啊!
    
飞天猩猩
驱动巨牛
驱动巨牛
  • 注册日期2001-09-24
  • 最后登录2008-06-17
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望22点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-27 18:23
[quote] 刚才写了许多,但网断了,又得重写一次

我的U盘是没有坏块管理的,因为Fat读写是Windwos自己的事,因此,如果你的Flash中有坏块,你应该在格式化的时候在对应的文件分配表项中标出来(即手工将Fat表中的对应项标为已坏),这些Windows在分配空间的时候就不会分配,

在实际存取文件的时候,PC机会给出数据,并告诉写到哪里,你只要保证可以成功写入就可以了.

我所指的格式化是指你的固件对Flash进行格式化,Windows系统的格式化我不知道为什么总是讲我的U盘格式化不成功.
--------------------------------------------------------------------------------


    你说你能把坏块信息写到fat中去?fat好象没有存储这种信息的地方啊!
    
 [/quote]
坏块也不是写到FAT中去的。你自己要记的哪个是坏块。
linguohui
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2012-09-19
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望8点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-27 21:47
如果用FLASH则firmware部分是需要做坏块管理的,因为FLASH上如果有一个坏块,则坏块所在的整个物理BLOCK必须登记为不可使用,这部分工作需要由FIRMWARE来完成
daor
驱动牛犊
驱动牛犊
  • 注册日期2001-05-16
  • 最后登录2018-04-15
  • 粉丝0
  • 关注0
  • 积分-25分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-27 22:05
 
如果用FLASH则firmware部分是需要做坏块管理的,因为FLASH上如果有一个坏块,则坏块所在的整个物理BLOCK必须登记为不可使用,这部分工作需要由FIRMWARE来完成



   既然坏块管理需要固件自己来完成,那么固件中的地址影射情况对于win2k来说,应该是透明的才对,那固件如何记录坏块(是只标记该块为不可用,或者是标记整个物理block为不可用),都可以的吧?只要保证逻辑--》物理地址转换是正确的。
    不知道我的理解对不对?
    
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-27 22:15
将Fat中表项标记为FFFF即表示此簇已坏,Windows便不会使用了.

这就是所谓的记录坏块的方法.

至于再有别的什么坏块管理我就不知道了.
frank_wang
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-27 22:26
有一个问题,我感觉我与大家讲的不一样,我刚才说的坏块是指Flash物理损坏,如果是数据成功写入后过一段时间坏了,这种坏块管理应该利用Flash中512-528的这段空间来加入校验码.
daor
驱动牛犊
驱动牛犊
  • 注册日期2001-05-16
  • 最后登录2018-04-15
  • 粉丝0
  • 关注0
  • 积分-25分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-11-28 14:27
    明白了,还是要自己来管理。不过我看肯定不是通过修改fat来
管理的,fat没有有效的表项,再说,通过固件自己来访问fat表,
还是有点麻烦,至少是容易出错。
    另外,还是麻烦大家帮我回答我的第二个问题:
    win2k ddk里关于存储驱动的资料那么多,我要速成的话应该
怎么看?时间太紧张了,而且我显示器不好,看起来很痛苦的呵呵。望大侠们出手,谢谢!
    今天放分!
游客

返回顶部