首页 > 代码库 > 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的功能。包括function和host driver,以及硬件。要求打开modem的remotewakeup的功能,要求host driver中能支持remote wakeup。能够通过短信以及msn把整个系统唤醒。硬件上中断必须能够唤醒系统。该中断和usb中断使用同一根中断pin.也就是说可以使用一个中断作为usb中断,同时作为唤醒源。
5.USBauto suspend的功能.包括function和host driver
6.USB host IF的测试。以及测试程序。有的USBhost IF需要单独的应用程序来进行测试,并在hub.c中比如isp1763a.
7.USB host driver的重新load的过程。要求能够重启modem以及usb host driver.包括稳定性测试
8.USB Function驱动的修改,标准kernel驱动是有问题的。
A。Function驱动的bug的修改,以及测试。要进行stress测试。
B。驱动对应的device的名字问题。比如ttyUSB,ttyACM等的设定。
9.测试memleak,可能有内存泄露问题
10.modem的stress test.看是否有NETDEV timeout的问题,以及上网连接不上的问题。
11.USB的硬件布线,开关,suspend/resume的耗电问题,通过power moniter测量耗电问题。
12.USBthroughput的测试。通过U盘进行测试,测试modemcard本身的throughput,通过lab中的8960以及实网中测试throughput。
13.测试pass through的throughput,这也是throughput的一项。但是由于建立环境比较复杂。可以包括PPP的连接方式以及网卡模拟的两种方式。怎样搭建device和PC环境的pass through的问题。
14.关于ttyACMx在modem重启以后变化的问题。是用户空间的问题,采用symbollink的方式实现。
15.usb host driver本身的一些bug.同步,阻塞等等问题。通过不同的stress来表现出来这些bug问题。问题很多出在同步上面
16.一些常用的测试项。
Flightmode toggle
RemoveSIM, insert SIM
Hostpower collapse
Modempower collapse
Check/sys/bus/usb…/power
17.modem卡bridge的问题。用于抓modem的log
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