问题标签 [usb-mass-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
79 浏览

android - 如何将数据从电脑复制到手机存储并确保我的应用正确检测到更改?

我的应用程序是否可以执行以下一项或多项操作:在手机连接到 PC 时读取、写入和检测手机存储的数据更改?

注意:该应用程序在 Android 4.1 及更高版本上使用

0 投票
0 回答
154 浏览

windows-ce - USB大容量存储,wec2013

如何使用 WEC2013 使用 USB 大容量存储功能在 PC 中公开 SD 卡,我尝试仅从设备中卸载 SD 卡但未安装在 PC 中?

0 投票
1 回答
2241 浏览

usb - 带有 STM32Cube 的 USB MSC

我正在使用 STM32Cube 生成简单的 USB MSC 项目。我正在使用STM32F417VG。
所以我选择USB_OTG_FS- Device_only 和USB_DEVICE- FS IP 类 - 大容量存储类。
然后我正在生成源代码,编译它并下载到板上,将它的 USB 电缆连接到 PC,没有任何反应。
我究竟做错了什么?

0 投票
0 回答
224 浏览

linux - 是否有在文件系统层工作的大容量存储的 USB 替代品?

是否有在文件系统层工作的大容量存储的 USB 替代品?

目标是制作一个可挂载为文件系统的 USB 设备,而不是块设备。

不同之处在于,在文件系统层工作将允许设备协调对其后备存储的写入,这些写入既来自主机操作系统,也来自设备本身。

在块设备层进行接口意味着设备一旦安装在主机操作系统上就必须停止写入(就像手机中的 SD 卡一样)。

我对三大操作系统(Linux、OSX 和 Windows 7+)的支持感兴趣,但对 Andriod、iOS 或其他 Unix 变体不感兴趣。

0 投票
1 回答
1330 浏览

named-pipes - USB 大容量存储小工具上的命名管道/FIFO 用于为汽车、码头等传输音频。

许多设备(汽车、电视、iPod 基座、AVR 接收器等)都可以访问符合类别的 USB 大容量存储设备并播放存储在其上的 wav 文件等。

我知道我可以使用带有适当双模式 USB 主机/接收器端口(例如 Beagleboard black)的小型 linux 系统来模拟 FAT32 大容量存储设备(一个 linux“小工具”),它可以插入汽车并像使用一样使用这是一个愚蠢的记忆棒 - 'g_mass_storage' http://www.linux-usb.org/gadget/file_storage.html

对于静态文件,这很好用。但是,我想让小猎犬板运行蓝牙接收器,将流解码为 PCM,然后将其通过管道传输到可以由汽车(ipod Dock 等)读取(无限期)的 dummy.wav 文件中。

例如 [Android or iPhone] --> [bluetooth a2dp] --> [beagleboard/ small linux system] --> [PCM audio]* --> [ g_mass_storage].'dummy.wav' --> [car's USB host ]

到 * 的步骤很简单,但我无法弄清楚如何将数据通过管道传输到 dummy.wav 文件中,因为 FAT32 不支持管道,但这通常是汽车等支持的唯一格式。

似乎这样的事情至少在概念上是可能的:http: //www.dension.com/products/dbu

并且 indigogo 上的“cubund”似乎遵循相同的原则(抱歉不能粘贴第二个链接,因为 stackexchange 不会让我这样做)如果它已经启动,我会买一个!

有任何想法吗?

谢谢,

托马斯

PS链的第一部分(即通过蓝牙的电话)可以是任何机制,并不是特别有趣。挑战在于提供一个虚拟文件,使 Google 音乐/网络广播等能够“流式传输”到只能从大容量存储设备读取文件的设备。

0 投票
0 回答
456 浏览

android - MTPDevice.open(usbDeviceConnection) 返回 false

我想打印 USB 设备中的所有文件。我正在尝试打开 mtpDevice,但打开函数返回 false。

请帮忙。

提前致谢。

0 投票
1 回答
2273 浏览

windows-phone-8 - 诺基亚 925 牛仔布操作系统作为海量存储

如何连接诺基亚 lumia 925 denim os 作为 Windows 8 或 mac os 中的大容量存储,以便我可以探索根文件夹,我基本上需要这个来复制应用程序数据?

我已经尝试过Mass_storage_mode_and_boot_configuration_data中提到的“将手机置于大容量存储模式”指南

但它在我的设备中不起作用,它只是正常重启。

0 投票
1 回答
861 浏览

arm - USB 大容量存储类是否需要在超时后重新枚举?

这可能是一个愚蠢的问题,

我在运行嵌入式 Linux 的 ARM-CortexM4 平台(STM32F4 系列)上调试 USB 存储设备。ARM 作为 USB 主机工作,并尝试以 USB 全速 (12Mb/s) 与拇指驱动器通信。

现在问题来了。在成功枚举和通过 BULK 传输的几个 SCSI 命令后,容量和所有内容都可以正确读取。但是,大约 15 秒后,当我再次尝试发送这些 SCSI 命令(在相同条件下)时,USB 主机控制器只返回“事务错误”,看起来设备不再响应 BULK 传输(不是 ACKing),并且主机控制器超时。问题是,对于 USB 大容量存储类或 SCSI 系统是否有任何超时机制,这样,在超时后系统必须重新枚举或重新探测,否则它将不再响应?

我知道这可能是由于我的程序中的一个愚蠢的错误,或者是由于特定硬件的一些限制。但是,当我在 PC 上使用 Linux 中的 usbmon 模块来捕获同一个拇指驱动器上的传输时,我可以看到操作系统实际上每 5 次发送一个序列探测命令(Read-max-Lun 后跟 Test-unit-ready)秒,这可能是拇指驱动器在我的电脑上没有出现故障的原因。

谢谢!我期待着任何答复。

0 投票
2 回答
906 浏览

c - 创建任意 FAT 文件系统,以归档或直接在程序内存中

我正在编写一个嵌入式系统,我正在创建一个 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 文件系统本身的资源。

0 投票
1 回答
571 浏览

android - 无法从 Android 设备上的 FAT32 USB 驱动器正确读取引导扇区

我正在尝试从 Android 设备上的 FAT32 驱动器读取引导扇区,但我得到的数据与我的预期完全不同。

这是我在 Android 设备上的读取端点上通过 bulkTransfer 收到的输出。

这是在我的 PC 上使用十六进制查看器转储的引导扇区。

我在 Android 上收到的数据在结尾处包含以下消息:“分区表无效。加载操作系统时出错。缺少操作系统”。

谁能告诉我这里有什么问题?在读取引导扇区之前我应该​​执行什么操作吗?

截至目前,我的代码流程如下:

  1. 查找所需的 USB 设备
  2. 获得与 USB 设备通信的权限
  3. 打开连接做设备
  4. 执行“Test Unit Ready”命令直到响应成功
  5. 执行“读取容量”命令 - 这将返回正确的结果
  6. 执行“Read 10”命令读取前 512 个字节 - 这将返回不正确的数据

我会感谢任何建议