天嵌 ARM开发社区

 找回密码
 注册
查看: 2754|回复: 5

usb驱动问题

[复制链接]
飛舞青春 发表于 2012-12-28 15:13:32 | 显示全部楼层 |阅读模式
我看到probe有这样一段struct usb_mouse {
        char name[128];
        char phys[64];
        struct usb_device *usbdev;
        struct input_dev *dev;
        struct urb *irq;

        signed char *data;
        dma_addr_t data_dma;
};

static void usb_mouse_irq(struct urb *urb)
{
        struct usb_mouse *mouse = urb->context;
        signed char *data = mouse->data;
        struct input_dev *dev = mouse->dev;
        int status;

        switch (urb->status) {
        case 0:                        /* success */
                break;
        case -ECONNRESET:        /* unlink */
        case -ENOENT:
        case -ESHUTDOWN:
                return;
        /* -EPIPE:  should clear the halt */
        default:                /* error */
                goto resubmit;
        }

        input_report_key(dev, BTN_LEFT,   data[0] & 0x01);
        input_report_key(dev, BTN_RIGHT,  data[0] & 0x02);
        input_report_key(dev, BTN_MIDDLE, data[0] & 0x04);
        input_report_key(dev, BTN_SIDE,   data[0] & 0x08);
        input_report_key(dev, BTN_EXTRA,  data[0] & 0x10);

        input_report_rel(dev, REL_X,     data[1]);
        input_report_rel(dev, REL_Y,     data[2]);
        input_report_rel(dev, REL_WHEEL, data[3]);

        input_sync(dev);
date指针的偏移数据到底存到哪里去了呀,感觉会丢失,
天嵌_support1 发表于 2012-12-28 16:14:31 | 显示全部楼层
他这里将数据上报了,应用程序通过系统调用接收到这些上报数据,从而操作界面上鼠标的移动
 楼主| 飛舞青春 发表于 2013-1-2 11:55:21 | 显示全部楼层
天嵌_support1 发表于 2012-12-28 16:14
他这里将数据上报了,应用程序通过系统调用接收到这些上报数据,从而操作界面上鼠标的移动

dear 天嵌_support1
 楼主| 飛舞青春 发表于 2013-1-2 11:58:01 | 显示全部楼层
飛舞青春 发表于 2013-1-2 11:55
dear 天嵌_support1

我不理解的是那个data指针是指向mouse结构的一个指针,但是要是data 偏移后指向的位置我就不清楚了,        input_report_rel(dev, REL_X,     data[1]);
        input_report_rel(dev, REL_Y,     data[2]);
        input_report_rel(dev, REL_WHEEL, data[3]);这data【1】,数据到底存到哪里了,
谢谢
 楼主| 飛舞青春 发表于 2013-1-2 12:01:06 | 显示全部楼层
还有一个问题就是用什么系统调用可以读到这个上报的数据,内核中usb_driver这个数据结构并没有实现read功能
 楼主| 飛舞青春 发表于 2013-1-7 15:04:36 | 显示全部楼层
天嵌_support1 发表于 2012-12-28 16:14
他这里将数据上报了,应用程序通过系统调用接收到这些上报数据,从而操作界面上鼠标的移动

版主要救我呀,我在应用层获得的那个上报的相对坐标只有一个方向,就是x一直都是1或2,y一直是-1或-2
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-24 11:27 , Processed in 1.024454 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表