格式化的原理和过程是什么?
谢谢
11 个解决方案
#1
5555555
#2
格式化不过是文件系统的一个初始化过程而已。对于U盘固件程序来说,就是一般数据罢了。找到空闲存储区的一个地址,存储好即可。当然要维护好这个映射关系(文件系统LBA到存储区地址的转换关系)。
#3
对于U盘固件来说,它不知何为格式化。上位机给U盘发送的是一般的读写数据的命令。唯一的区别就是读写的区域不同。
http://blog.csdn.net/kevinyujm/archive/2010/03/27/5423098.aspx
http://blog.csdn.net/kevinyujm/archive/2010/03/27/5423098.aspx
#4
既然格式化只是读写,那么是不是只要读写功能正常就可以格式化了?
现在我的程序读写都可以,格式化的时候window就是会提示“window无法完成格式化”
是不是格式化主机是不是还有进行其他的动作???
现在我的程序读写都可以,格式化的时候window就是会提示“window无法完成格式化”
是不是格式化主机是不是还有进行其他的动作???
#5
我设置断点调试,格式化的时候根本还没有执行到write,就提示错误了
#6
问题猜不出来。
建议你使用bushound配合程序调试,以确定具体原因。
建议你使用bushound配合程序调试,以确定具体原因。
#7
当PC执行格式化之后,PC都发送了那些命令??U盘该如何回复这些命令呢?
#8
你既然读写都正常了,为什么还不了解PC文件系统对磁盘操作?
首先你在主机上通过文件系统操作U盘(格式化,格式化后读写磁盘),都是文件系统完成。格式化是文件系统的初始化,当然这些数据也要写到磁盘上的固定位置(对于U盘来说,就是逻辑扇区固定,具体物理地址就是你固件程序所要完成的工作了)。U盘一般都是使用SCSI协议完成数据包解析的吧(Usb协议只是传输协议,具体使用什么协议解析数据,那是根据具体USB设备而定了-- 看了几个月USB的理解,应该如此)。你可以到网上找些USB Mass Storage实现的SCSI协议文档。
#9
恩
#10
这个是U盘自己的事情了。
#11
格式化就是重写文件系统的基本扇区。你执行它发来的读写命令就可以了。
#1
5555555
#2
格式化不过是文件系统的一个初始化过程而已。对于U盘固件程序来说,就是一般数据罢了。找到空闲存储区的一个地址,存储好即可。当然要维护好这个映射关系(文件系统LBA到存储区地址的转换关系)。
#3
对于U盘固件来说,它不知何为格式化。上位机给U盘发送的是一般的读写数据的命令。唯一的区别就是读写的区域不同。
http://blog.csdn.net/kevinyujm/archive/2010/03/27/5423098.aspx
http://blog.csdn.net/kevinyujm/archive/2010/03/27/5423098.aspx
#4
既然格式化只是读写,那么是不是只要读写功能正常就可以格式化了?
现在我的程序读写都可以,格式化的时候window就是会提示“window无法完成格式化”
是不是格式化主机是不是还有进行其他的动作???
现在我的程序读写都可以,格式化的时候window就是会提示“window无法完成格式化”
是不是格式化主机是不是还有进行其他的动作???
#5
我设置断点调试,格式化的时候根本还没有执行到write,就提示错误了
#6
问题猜不出来。
建议你使用bushound配合程序调试,以确定具体原因。
建议你使用bushound配合程序调试,以确定具体原因。
#7
当PC执行格式化之后,PC都发送了那些命令??U盘该如何回复这些命令呢?
#8
你既然读写都正常了,为什么还不了解PC文件系统对磁盘操作?
首先你在主机上通过文件系统操作U盘(格式化,格式化后读写磁盘),都是文件系统完成。格式化是文件系统的初始化,当然这些数据也要写到磁盘上的固定位置(对于U盘来说,就是逻辑扇区固定,具体物理地址就是你固件程序所要完成的工作了)。U盘一般都是使用SCSI协议完成数据包解析的吧(Usb协议只是传输协议,具体使用什么协议解析数据,那是根据具体USB设备而定了-- 看了几个月USB的理解,应该如此)。你可以到网上找些USB Mass Storage实现的SCSI协议文档。
#9
恩
#10
这个是U盘自己的事情了。
#11
格式化就是重写文件系统的基本扇区。你执行它发来的读写命令就可以了。