gpt4 book ai didi

embedded - 如何共享对 FAT32 文件系统的访问

转载 作者:行者123 更新时间:2023-12-02 21:44:41 24 4
gpt4 key购买 nike

我正在开发一种使用 SD 卡进行存储的嵌入式设备,并且需要允许 PC 通过 USB 访问该 SD 卡。

我能想到的最好方法是虚拟化磁盘并将该虚拟化图片呈现给 PC。这将允许 PC 读取和写入文件,而我的设备也在读取和写入。

当您考虑到 PC 可能缓存了读取内容时,问题就出现了,因此 PC 用户在设备创建新文件时不可能看到新文件 - PC 只会看到当时存在的文件已连接。

另一个缺点是,在与 PC 断开连接之前取出闪存卡并不安全。

有没有解决这个问题的方法?现代相机如何处理它?我相信媒体传输协议(protocol)就是为了这个目的而创建的,但是它并没有以透明的方式得到广泛支持。我不处理“媒体”文件,尽管我认为这并不重要。

是否有一些我缺少的常用巧妙解决方法?

谢谢

最佳答案

据我所知,两个设备无法使用FAT等通用文件系统协作共享 block 设备。 (除非它是只读文件系统)

解决方案是只有一个设备(即相机)拥有低级别( block 级别)的文件系统。然后该设备可以使用更高级别的协议(protocol)(高于原始 block 操作)共享文件。正如你所说,USB Media Transfer Protocol就是一个例子。高级文件共享协议(protocol)的其他示例是 NFS 和 SMB,但我认为这些协议(protocol)不适用于这种情况。

引用自Media Transfer Protocol on Wikipedia :

A main reason for using MTP rather than for example the USB mass-storage device class (MSC) is that the latter operates at the granularity of a mass storage device block (usually in practice, a FAT block), rather than at the logical file level. In other words, the USB mass storage class is designed to give a host computer undifferentiated access to bulk mass storage, such as compact flash, rather than to a file system, which might be safely shared with the target device (except for specific files which the host might be modifying/accessing). In practice, therefore, when a USB host computer has mounted an MSC partition, it assumes absolute control of the storage, which then may not be safely modified by the device without risk of data corruption until the host computer has severed the connection.

关于embedded - 如何共享对 FAT32 文件系统的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8385932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com