This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F5659:枚举为 USB 闪存驱动器的 MSP430将显示"Safe to Remove Hardware"弹出时、闪存驱动器仍保留在 Windows Explorer 中

Guru**** 2587365 points
Other Parts Discussed in Thread: MSP430F5659, MSP430USBDEVPACK

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/605701/msp430f5659-msp430-enumerated-as-usb-flash-drive-will-display-safe-to-remove-hardware-when-ejected-but-the-flash-drive-remains-in-windows-explorer

器件型号:MSP430F5659
主题中讨论的其他器件: MSP430USBDEVPACK

我们使用 USB API 堆栈开发的 MSP430F5659微控制器、并设置为 MSC 类器件。

 它在 Windows 7上被枚举为 USB 闪存驱动器、并设置为将微内部闪存用于闪存驱动器存储。

闪存驱动器按预期工作、但弹出闪存驱动器将显示 "Safe to Remove Hardware"弹出窗口、但闪存驱动器仍保留在 Windows 资源管理器中。

我使用的现成闪存驱动器也会卸下闪存驱动器、因此弹出后它不会显示在 Window Explorer 中。

是否有任何关于如何使该微控制器更像现成驱动器那样工作的建议?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Russell、

    感谢您的发帖。 您能否分享您正在使用的 USB API 的哪个版本? 另外,弹出设备后,弹出窗口出现后,您是否可以在 Windows 资源管理器中访问驱动器?

    从较高层次看、您的应用程序代码似乎没有从 PC 卸载器件。 您的代码是否基于我们的 MSC 示例项目之一?

    此致、

    James

    MSP 客户应用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 James:

    我将代表 Russell 回答这些问题。  我们使用的 USB API 版本是5_10_00_17。  我们的应用固件基于 M1文件系统仿真示例。  修改了源代码以使内部闪存作为真正的 FAT 文件系统工作、而不是仿真。  在 Windows 资源管理器中,设备弹出后仍可访问。  如果您需要更多信息、请告知我们、感谢您的帮助!

    此致、

    Yi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    在 descriptor.c 文件中、有一个名为 "USBMSC_Config"的结构 、用于定义主机的存储介质。   您可以尝试将"可移动" 值从0x00设置为0x80、以告知主机这是一个可移动设备。   当此设备变为可移动设备时、软件将查看存储设备的状态以验证其是否仍然存在、并适当执行必要的代码。

    希望这起作用。  如果不是、请告诉我、我将进一步对此进行检查。

    此致、

    Arthi  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Arthi、

    感谢您的回复。  我们确实在 USBMSC_CONFIG 结构中将器件配置为可移除(0x80)。  但设备在弹出时不会卸载。  还有其他需要检查的东西吗?  感谢您的任何帮助!  

    此致、

    Yi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yi、

    不确定如何"弹出"内部闪存存储设备、因为没有实际硬件、当用户选择"快速弹出"设备时、Windows 可以关闭电源。   我认为这甚至是不可能的。   如果您希望能够"弹出"设备、则可以调整带有 SD 卡的 M2示例 以存储闪存驱动器。    

    此致、

    Arthi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Arthi、

    我正面临同样的问题、您想问的是什么示例? 请提供其链接吗?

    Yi、

    您是否能够解决此问题?

    此致、

    佩德罗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pedro、
    在 MSP430USBDEVPACK (www.ti.com/.../msp430usbdevpack)中 、您可以将两个示例下载到 MSP430器件、M1_FileSystemEmulation 和 M2_SDCardReader。 MSP430USB 软件包中还包含一个'Examples_Guide_MSP430_USB.pdf'文档、该文档介绍了如何在您的器件上运行这些示例。

    此致、
    Arthi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pedro、

    是的、我们解决了该问题。  问题在我们一方。  我们意外地注释掉了文件 UsbMscScsi.c 的 scsi_Cmd_Parser()函数内的 DESELECTROE()语句,这显然使卸载过程失败。  取消注释 DESELE() 函数后,一切都正常。  

    此致、

    Yi