1

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

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

关于乔西普

4

2 回答 2

3

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 */
    }

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

希望这有帮助!伊曼纽尔

于 2015-03-30T12:04:20.557 回答
1

尝试在 QNX 中使用 MCD(媒体内容检测器)。请参阅以下链接 -

http://www.qnx.com/developers/docs/6.4.1/neutrino/utilities/m/mcd.html http://www.qnx.com/developers/docs/660/index.jsp?topic=% 2Fcom.qnx.doc.dev_pub.ref_guide%2Ftopic%2Fdrivers.html

于 2015-12-22T07:27:29.477 回答