我正在编写一个嵌入式系统,我正在创建一个 USB 大容量存储设备驱动程序,该驱动程序使用 8MB 的 RAM 块作为 FAT 文件系统。
虽然当时允许操作系统取出我的零内存区域并格式化一个 FAT 分区本身是有意义的,但我在 Jan Axelson(USB 书籍的流行作者) PORTS 论坛上遇到了我正在诊断的问题。该问题与擦除驱动器中的块有关,并且可以通过在 USB 枚举之前将内存区域预格式化为 FAT 文件系统来规避。然后,我可以查看驱动器是否可以正常运行。理想情况下,预格式化的分区将包含一个文件以测试读取操作。
如果我能以某种方式在我的 OS (OSX) 上创建和挂载一个模拟 8MB FAT 文件系统,向它写入一个文件,然后将它导出到一个图像文件以包含在我的项目中,那就太好了。有人知道该怎么做吗?我可以处理剩下的。目前我不太担心那是否是 FAT12/16/32,可选的 MBR 包含会很好..
如果该选项不存在,我希望使用预先编写的实用程序来创建一个 FAT img 文件,我可以将其包含到我的项目中并直接上传到 RAM。这个实用程序允许我指定一个 8MB 的文件系统,例如 512 字节的扇区,可能还有 FAT12 / FAT16 / FAT32。
有人知道这样的实用程序吗?我找不到一个。
如果没有,有人可以推荐在 C 中实现这一点的第一步吗?我希望图书馆存在。从头开始实施大容量存储驱动程序后,我已经筋疲力尽了,但我知道我可能不得不“弄皱”并手动创建 FAT 分区。这不是太难。我想象一些打包的结构和一些选项。我会到达那里。我已经拥有 FAT 文件系统本身的资源。