阅读:1620回复:2
U盘文件系统的问题的请教
现有一ARM嵌入系统,有USB OTG控制器和K9F56xx0B Flash。系统正常运行已经有文件系统,类似POSIX。欲实现U盘的功能。现已经通过Windows对USB设备的枚举过程,显示出了可移动磁盘的盘符,只是还不能访问存储介质。想利用先有的文件系统创建一个目录,对于该目录作为U盘的存储区,然后设计一个FAT16文件系统的接口 层,以便Windows对此存储区进行读写。
我想是不是应该首先对此目录按照FAT16的格式初始化好DBR(扇区、柱面、磁头等)、FAT1、FAT2和根目录等参数,以便让Windows确定容量。然后再响应UFI命令中的Read(10)、Write(10)命令进行读写U盘的文件。很奇怪这两个命令包中用的是Logical Block Address和Transfer Length参数,怎么和Windows资源管理器中的文件名对应呢?也就是mass storage UFI协议中的一些命令和FAT16文件系统的操作怎么对应呢?假设响应Write(10)命令,写一个文件到存储区,还要负责实现更新FAT表里的内容吗(因为一个文件对应一条簇链)?哪些是windows已经做好的,哪些要自己实现的? 不想闭门造车,欢迎讨论理思路! |
|
沙发#
发布于:2005-03-08 23:26
UFI命令是用“扇区”来定位的,一个扇区是512字节,Logical Block Address 代表从第几个“扇区”开始,Transfer Length代表要操作几个扇区。我们要做的只是初始化好MBR,然后读写时一一对应的根据逻辑地址转化到实际的地址就搞定了。。
|
|
板凳#
发布于:2010-04-28 20:27
回 1楼(Shentu) 的帖子
您好 可以请教您几个问题吗呵呵 我现在就是学习Flash读写的 我的QQ442133447 或者我加您的QQ 非常感谢哦 |
|
|