DS3.2开发USB驱动时SubmitUrb一个输入URB蓝屏问题的解决
来源:互联网 发布:网络信息的利与弊稿子 编辑:程序博客网 时间:2024/05/21 10:00
作者:computer00
在使用DS3.2开发USB PDIUSBD12的驱动程序时,使用DS的向导自动生成驱动后,添加发送数据相关代码后,测试发送数据成功。继续增加读数据相关代码,使用最简单的同步调用,结果出现蓝屏……反复查看代码,不管是使用buffered模式还是direct模式,设置成异步调用并设置完成例程,结果还是蓝屏依旧...在经过无数次的修改代码、蓝屏之后,人都快崩溃了...看别人的驱动以及DS自带的例子中都是这样做的呀,看来问题不在这里。找到代码中的设备构造函数Computer00USBDevice::Computer00USBDevice,发现原来是DS向导生成的代码SB了...
本来应该是
// Initialize each Pipe object
m_Endpoint1In.Initialize(m_Lower, 0x81, 16);
m_Endpoint1Out.Initialize(m_Lower, 1, 16);
m_Endpoint2In.Initialize(m_Lower, 0x82, 64);
m_Endpoint2Out.Initialize(m_Lower, 2, 64);
而向导自动生成的代码在0x81和0x82前面都漏掉了0x,变成十进制的了,我倒塌...
结果就是两个输出端点可以正常工作,而一旦对输入端点操作时,就导致系统蓝屏了...
将代码改正过来,再测试,系统不再蓝屏,而且也可以正常从设备读取到数据了。
另外,如果应用程序提供的缓冲区比实际返回的数据长度少时,就会读不到数据,并且以后再使用足够长度的缓冲区去读时也还是读不到。需要将设备停用后重新启用才能重新读到数据。所以应用程序应该提供足够大的缓冲区(例如端点的最大数据包长度)去读数据。
Computer00 2008.03.11
- DS3.2开发USB驱动时SubmitUrb一个输入URB蓝屏问题的解决
- Linux USB驱动中URB的使用
- usb转串口蓝屏问题的解决
- USB 的 Urb
- USB--平台搭建--2--USB驱动程序开发DDK DS3.2安装
- linux usb驱动中的urb详解
- [解决]vs2005打不开ds3.2生成的.sln文件
- USB URB
- USB URB
- USB URB
- USB urb
- mini2440 usb host device controller驱动分析(二) -----数据(urb)的收发流程
- ds3.1 在 xp sp2 的问题
- USB驱动——描述符、URB、管道
- 关于解决插入USB设备蓝屏的思路【转】
- 解决USB无法安装驱动识别的问题
- DriverStudio驱动程序开发工具包的安装说明(DS3.2及以下版本)
- 驱动开发:使用WinDbg分析定位Windows蓝屏问题
- 鼠标停留在GridView某一行时 行的颜色改变
- Freemarker总结
- 关于 CSS样式丢失 的另外一种可能
- mysql 正则表达式
- FS-V1、FS-M1、FS-M2、FS-T1、FS-T2
- DS3.2开发USB驱动时SubmitUrb一个输入URB蓝屏问题的解决
- 让asp页面在固定时间后打开
- FU-11、FU-12、FU-20、FU-25、FU-31
- 杀生记
- 文本文件于二进制文件的区别
- java中double型数据的加减乘除
- 80年代人难忘的瞬间
- 新作
- VB.NET 子窗体导出Excel进度显示在父窗体ToolStripProgressBar上