【问题标题】:Usb mass storage file system location on QNXQNX 上的 USB 大容量存储文件系统位置
【发布时间】:2015-03-20 10:52:41
【问题描述】:

我需要通知我的软件 USB 大容量存储棒已插入,我还需要安装此存储棒的位置。是否有可能获得这些信息,尤其是从任何 C 库中安装了stick 的 fs 上的位置?

对于 instertion,我已经知道 usbd_connect() 并且我正在使用它。不幸的是,没有关于 fs 位置的信息。

问候 乔西普

【问题讨论】:

    标签: qnx qnx-neutrino


    【解决方案1】:

    io-usb 应该已在您的目标上启动并运行。

    将“usbdi”库添加到您的项目中。

    然后使用以下代码片段:

    #include <sys/usbdi.h>
    
    static struct usbd_connection *conn_usb = NULL;
    static void cbinsert(struct usbd_connection *connection, usbd_device_instance_t *ins);
    static void cbremove(struct usbd_connection *connection, usbd_device_instance_t *ins);
    
            int init(void)
            {
                usbd_funcs_t funcs = { _USBDI_NFUNCS, cbinsert, cbremove, NULL };
                usbd_connect_parm_t parm = {NULL, USB_VERSION, USBD_VERSION, 0, 0, NULL, 0, NULL,  &funcs,0};
    
                if (usbd_connect(&parm, &conn_usb) != EOK) {
                    /* write your own error handler */
                }
    

    然后,添加您的自定义处理程序:

    static void cbinsert(struct usbd_connection *usb_connection,usbd_device_instance_t *usb_instance)
    {
        if (usb_instance->ident.dclass == 8 && usb_instance->ident.subclass == 6) {
            /* USB mass storage */
        } else if (usb_instance->ident.dclass == 3 && usb_instance->ident.subclass == 1) {
            /* USB mouse */
        } else {
            /* unknown device */
        }
    

    这是一个例子。您将不得不对其进行自定义。 但你需要的一切都在那里。

    希望有帮助! 伊曼纽尔

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 如果您知道如何使用此工具进行操作,请给出解决方案。不要使用答案来提问。
      • @Alex.S 改变了答案。我想这已经足够了。我认为这里不需要用勺子喂食。这个作者可以自己学习解决。
      猜你喜欢
      • 1970-01-01
      • 2012-07-02
      • 2017-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      相关资源
      最近更新 更多