2440上U口的WIFI与U盘不能同时使用的解决

来源:互联网 发布:常见的java内存泄露 编辑:程序博客网 时间:2024/05/01 05:02

   2440上U口的WIFI与U盘居然不能同时使用 收藏
开发中经常会遇到这样一些问题,现象很怪,感觉很棘手,到处看资料,找人,找技术支持,磨了几天了磨得没脾气了,只有静下心来仔细分析,研究代码,最后解决问题时发现其实就一个小小的问题,小问题的郁闷。

由于项目需要把2440的两个USB都用作了HOST,一个接WIFI,固定在机器内部,另一个就用来外接鼠标,键盘等外设,测试时都个HOST都接U盘都是正常的,就没多试了,后来一直都是两个HOST一起使用,外接的HOST便于操作需要都是接一个鼠标,都没出现过什么问题。客户过来看样机,提出要接U盘看一下,一插入U盘居然提示要输入驱动名称,晕了。。。。驱动怎么会不能加载?接鼠标可以,键盘可以,再把WIFI焊下来,接U盘也可以,再接两个U盘也可以,最后从WIFI代理商那里问到了一点眉目,说是WIFI驱动占用USB管道比较多,可能给U盘留下的管道资源就很少了,造成加载不成功。而鼠标键盘都是中断传输方式,只占用很少的管道,所以正常。顺着这个线索把PUBLIC下面的USB代码都看了一遍,关于PIPE,ENDPOINT的数量最大值都乘2。。没果。。。完了,想到管道其实都是内存映射的一块区域,是不是申请的内存空间不够呢?最后在BSP下的USB驱动改动如下。解决问题。


// Amount of memory to use for HCD buffer

static const DWORD gcTotalAvailablePhysicalMemory = 65536*2; // 64K

static const DWORD gcHighPriorityPhysicalMemory = 0x4000*2; // 16K


很小的问题,很小的改动。

 

如果出现多个USB设备插上后无法同时识别,也可以改这两个值。

 

另外参:http://www.cnblogs.com/walzer/archive/2006/02/05/325606.html

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shuiii/archive/2009/03/25/4022471.aspx

原创粉丝点击