zoukankan      html  css  js  c++  java
  • Android8.0 USB gadget adb 流程梳理

    rk3399 Android8源码 nanopc-t4

    RK3399 Android8.1源码 ADB消息传输,函数调用跟踪

    函数名

    文件位置

     
    usb_write

    system/core/adb/daemon/usb.cpp

    ffs_epfile_io

    kernel/drivers/usb/gadget/function/f_fs.c

    usb_ep_queue

    kernel/drivers/usb/gadget/udc/core.c

    dwc3_gadget_ep_queue

    kernel/drivers/usb/dwc3/gadget.c

    先记下阅读过程中几个关键函数:

    dwc3_ep0_xfer_complete

      ep0端点USB接收流程。

    usb_endpoint_xfer_bulk

      批量(bulk)传输。

    ret = request_threaded_irq(irq, dwc3_interrupt, dwc3_thread_interrupt,
    IRQF_SHARED, "dwc3", dwc->ev_buf);

    int usb_ep_queue(struct usb_ep *ep,struct usb_request *req, gfp_t gfp_flags)  

      入队请求操作

    文件读取,如果系统实现中没有同步读取的实现,则使用异步读取将其实现(前提是异步读取时存在的)
    函数所在文件:kernel/fs/read_write.c
    ssize_t __vfs_read(struct file *file, char __user *buf, size_t count,
               loff_t *pos)
    {
        if (file->f_op->read)
            return file->f_op->read(file, buf, count, pos);
        else if (file->f_op->read_iter)
            return new_sync_read(file, buf, count, pos);
        else
            return -EINVAL;
    }
    EXPORT_SYMBOL(__vfs_read);
  • 相关阅读:
    Spring注解
    [Exception Android 22]
    Android中Word转Html
    [Exception Android 20]
    POI-word转html
    【JS设计模式】装饰者模式
    C语言中的传值调用
    Spring Aop基础总结
    Android开发-状态栏着色原理和API版本号兼容处理
    9.12測试(二)——国际象棋
  • 原文地址:https://www.cnblogs.com/guanglun/p/10967930.html
Copyright © 2011-2022 走看看