博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fastboot timeout
阅读量:4214 次
发布时间:2019-05-26

本文共 1236 字,大约阅读时间需要 4 分钟。

在host是window的情形下,从window发送数据给adb,这样就主从就可以通信了,但是如果adb那边在做耗时的事情,没有及时响应fastboo的命令,这种情形下window好等多久呢?答案是5s。code如下。超过5s就认为通信失败.这种情形下一般要提供处理接受window 发送过来命令进程的优先级,以减少响应的时间
xref: /system/core/fastboot/usb_windows.c
int usb_write(usb_handle* handle, const void* data, int len) {
156    unsigned long time_out = 5000;
157    unsigned long written = 0;
158    unsigned count = 0;
159    int ret;
160
161    DBG("usb_write %d\n", len);
162    if (NULL != handle) {
163        // Perform write
164        while(len > 0) {
165            int xfer = (len > MAX_USBFS_BULK_SIZE) ? MAX_USBFS_BULK_SIZE : len;
166            ret = AdbWriteEndpointSync(handle->adb_write_pipe,
167                                   (void*)data,
168                                   (unsigned long)xfer,
169                                   &written,
170                                   time_out);
171            errno = GetLastError();
172            DBG("AdbWriteEndpointSync returned %d, errno: %d\n", ret, errno);
173            if (ret == 0) {
174                // assume ERROR_INVALID_HANDLE indicates we are disconnected
175                if (errno == ERROR_INVALID_HANDLE)
176                usb_kick(handle);
177                return -1;
178            }
179
180            count += written;
181            len -= written;
182            data = (const char *)data + written;
183
184            if (len == 0)
185                return count;
186        }
187    } else {
188        DBG("usb_write NULL handle\n");
189        SetLastError(ERROR_INVALID_HANDLE);
190    }
191
192    DBG("usb_write failed: %d\n", errno);
193
194    return -1;
195}

转载地址:http://ftcmi.baihongyu.com/

你可能感兴趣的文章
已知先序中序求后序 C实现(分治法)
查看>>
单源无权最短路径 C实现~
查看>>
Dijkstra算法 求单源含权最短路径(邻接表有向图)C实现
查看>>
Dijkstra(邻接矩阵有向图)C 实现~
查看>>
多源最短路径 Floyd 算法(有向图) C实现 ~
查看>>
Dijkstra (邻接矩阵的另一种实现)
查看>>
Prim算法(邻接矩阵无相图)求最小生成树 C 实现 ~
查看>>
路径压缩 递归 与非递归版本
查看>>
kruskal算法 求最小生成树(邻接表 无向图) C实现
查看>>
冒泡排序(bubble sort)
查看>>
插入排序(insert sort)
查看>>
希尔排序(shell sort)
查看>>
堆排序(heap sort)
查看>>
归并排序(递归版本)C实现~
查看>>
归并排序 (非递归版本) C实现~
查看>>
图的割点(简易邻接矩阵)C~
查看>>
两个变量实现交换
查看>>
求割点(邻接表无向图)C~
查看>>
求图的割边(桥)(邻接矩阵 无向图)C~
查看>>
快速排序(quick sort) C ~
查看>>