首页 > 代码库 > usb 项目经验

usb 项目经验

1.usb能够进行基本的工作,包括基本的GPIO的配置。寄存器地址的设定。中断的设定。

设定好了以后要求能够进行最基本的usb的功能,比如U

 

2.需要一些文件节点来控制该usb host驱动,以及相应的节点读写寄存器,方便调试的文件节点。

 

2.USB enumeration的稳定性。要求每次enumeration都要成功。

isp1763就发现有些modem卡不能enumeration成功。原因在于:

 

3.suspend/resume问题

A.如果没有bus suspend/resume,可能会导致系统不能正常睡眠的问题。

 

B.USB suspend/resume的稳定性。

测量usb芯片的clk.在每次suspend的时候时钟必须停掉,而起来的resume的时候时钟必须打开。Suspend/resume必须十分稳定。

 

C.USB suspend/resume的功能性问题。

有些时候device不能正确的resume.或者不能正确的suspend.

 

D.处理在suspend的过程中有remotewakeup的问题。

 

 

4.USB remote wakeup的功能。包括functionhost driver,以及硬件。要求打开modemremotewakeup的功能,要求host driver中能支持remote wakeup。能够通过短信以及msn把整个系统唤醒。硬件上中断必须能够唤醒系统。该中断和usb中断使用同一根中断pin.也就是说可以使用一个中断作为usb中断,同时作为唤醒源。

 

5.USBauto suspend的功能.包括functionhost driver

 

6.USB host IF的测试。以及测试程序。有的USBhost IF需要单独的应用程序来进行测试,并在hub.c中比如isp1763a.

 

7.USB host driver的重新load的过程。要求能够重启modem以及usb host driver.包括稳定性测试

 

8.USB Function驱动的修改,标准kernel驱动是有问题的。

AFunction驱动的bug的修改,以及测试。要进行stress测试。

B。驱动对应的device的名字问题。比如ttyUSB,ttyACM等的设定。

 

9.测试memleak,可能有内存泄露问题

 

10.modemstress test.看是否有NETDEV timeout的问题,以及上网连接不上的问题。

 

11.USB的硬件布线,开关,suspend/resume的耗电问题,通过power moniter测量耗电问题。

 

12.USBthroughput的测试。通过U盘进行测试,测试modemcard本身的throughput,通过lab中的8960以及实网中测试throughput

 

13.测试pass throughthroughput,这也是throughput的一项。但是由于建立环境比较复杂。可以包括PPP的连接方式以及网卡模拟的两种方式。怎样搭建devicePC环境的pass through的问题。

 

14.关于ttyACMxmodem重启以后变化的问题。是用户空间的问题,采用symbollink的方式实现。

 

15.usb host driver本身的一些bug.同步,阻塞等等问题。通过不同的stress来表现出来这些bug问题。问题很多出在同步上面

 

16.一些常用的测试项。

Flightmode toggle

RemoveSIM, insert SIM

Hostpower collapse

Modempower collapse

Check/sys/bus/usb…/power

 

17.modembridge的问题。用于抓modemlog

 

18.tansaction error的处理,什么情况下容易出现transaction error

 

19.usb host if测试的支持,已经相应的测试方法

 

20.USB中断处理的框架是什么?

usb的中断处理在linux中是:

中断传输有数据返回之后,进行数据处理,然后再次submit中断urb.如果需要取消中断传输则,不进行再次submit的动作

UEFI中是:

中断传输有数据返回之后,再次让硬件处理urb,进行数据处理.如果需要取消中断传输,则调用函数取消

 

21.SS USB也就是USB3.0的接口规格

 

22.嵌入式usb host有片上内存。需要合理的分配片上内存的资源。参考isp1763a