NXT*_*NXT 4 embedded usb fat32 fat
我正在开发一种使用SD卡进行存储的嵌入式设备,需要允许PC通过USB访问该SD卡.
我能想到的最好方法是虚拟化磁盘并将虚拟化图片呈现给PC.这将允许PC读写文件,而我的设备也在读写.
当您考虑到PC可能具有缓存读取时会出现问题,因此PC用户无法在设备创建时看到新文件 - PC只会看到连接时存在的文件.
另一个缺点是,在PC断开连接之前移除闪存卡是不安全的.
这有什么变通方法吗?现代相机如何处理它?我认为媒体传输协议是为此目的而创建的,但它并没有以透明的方式得到广泛支持.而且我不是在处理"媒体"文件,尽管我认为这并不重要.
我缺少一些常用的巧妙解决方法吗?
谢谢
据我所知,两个设备无法使用FAT等常用文件系统协同共享块设备.(除非它是一个只读文件系统)
解决方案仅适用于一个设备(即摄像头)以低级别(块级别)拥有文件系统.然后,该设备可以使用更高级别的协议共享文件(高于原始块操作).正如您所说,USB 媒体传输协议就是一个例子.更高级别文件共享协议的其他示例是NFS和SMB,但我不认为这些适用于此方案.
引自维基百科上的媒体传输协议:
使用MTP而不是例如USB大容量存储设备类(MSC)的主要原因是后者以大容量存储设备块(通常在实践中,FAT块)的粒度操作,而不是在逻辑文件上操作水平.换句话说,USB海量存储类旨在为主机提供对大容量存储的无差别访问,例如紧凑型闪存,而不是文件系统,可以安全地与目标设备共享(特定文件除外)主机可能正在修改/访问).因此,实际上,当USB主机安装了MSC分区时,它假定存储的绝对控制,然后设备可能无法安全地修改该存储,而没有数据损坏的风险,直到主机断开连接为止.