代码框架优化
来源:互联网 发布:网络液晶广告屏厂家 编辑:程序博客网 时间:2024/05/29 09:01
先前在客户即将量产的时候,碰到一个MTP的bug,最终发现是系统在发送opensession的请求太快,使用的是usb hardware 的NAK retry 方式,也就是当USB controller接收到NAK 时,usb controller 会等待一段时间,再次发送请求,对于full speed 就是发送一个OUT packet,然后就是DATA 部分,如果发送得太频繁,会使得手机端比较繁忙,从而无法快速的回复opensession的请求,针对这样的问题,采取的措施就是使用software nak retry的方式,但是在修改代码的时候,出现了问题。
USB driver 在写code的时候,并没有专门提供sw nak retry 和 hw nak retry 的API来让上层AP来调用,必须在usb driver层来修改,但是这样子却带来了致命的影响,不仅仅MTP协议会走usb,还有mass storage,还有IPOD设备都会使用usb 的driver部分,这样子一旦修改底层部分,将会给MASS STORAGE, MTP,PTP, IPOD (HID/AUDIO) 都会出现影响,从而给产品带来不可估计的bug。
那么针对这样的问题,如何解决,从而可以避免单个协议的bug修改,也不会影响其它的部分呢,这样子,系统才有可能越来越稳定。
在修改的时候,有两个比较好的选择,提供专门的API 给AP调用,另外一个就是使用宏框住(其实代码会变得很丑)。
下图是个人的一些见解,底层驱动仅仅提供基本的能力,在策略上,不要加任何限制,每个协议有不同的需求,具体上层AP需要使用什么策略,让AP层去做,因为一旦底层driver层提供了一些策略,上层AP要要变动就比较困难,而且牵一发而动全身。
- 代码框架优化
- 编译原理结构框架10代码优化
- Android使用EventBus框架优化代码逻辑
- 12讲项目实战SEO之HTML代码优化-水平框架-竖直框架-混合框架-案例
- 代码优化
- 代码优化
- 优化代码
- 代码优化
- 代码优化
- 代码优化
- 代码优化
- 代码优化
- 优化代码
- 代码优化
- 代码优化
- 优化代码
- 代码优化
- 优化代码
- POJ-3155-Hard Life
- BFS模板
- cocos2d-x 3.x中各种平台的创建项目命令,运行项目命令、运行testcpp命令
- UVA 340 (暑假-排序、检索 -A - Master-Mind Hints)
- android camera(三):camera V4L2 FIMC
- 代码框架优化
- 判断oracle连接是专用模式/共享模式方法(dedicated/shared)
- Oracle Linux安装的时候监听报错 TNS-00525问题解决办法
- ReportStudio入门教程(六十五) - 生成变量的使用
- Android通过WebService进行网络编程------查询天气
- Centos中IP与DNS手动设置方法
- linux访问0xc0000000以下地址错误原因
- 机器学习之逻辑回归
- 二:1.mysql yum 安装