maggie_zhy
驱动牛犊
驱动牛犊
  • 注册日期2008-06-23
  • 最后登录2008-09-10
  • 粉丝1
  • 关注0
  • 积分2分
  • 威望25点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1220回复:3

关于USB数据传输的问题

楼主#
更多 发布于:2008-07-08 14:01
开发工具,DDK2000
参考代码    src/wdm/usb/bulkusb

通常数据传输都是在上层控制的,通过CreateFile( )打开inPipe, outPipe,然后通过read,write实现。

现在需要把这部分控制做在驱动里,上层通过ioctl发送命令,驱动接收后,发送相应的命令帧出去。
驱动代码中,在收到ioctl命令后,就去调用BulkUsb_Read( ),BulkUsb_Write( )两个函数,总是会系统重启。到底是什么原因造成的呢?
如何在驱动中,控制命令帧的发送和接收?

谁有过类似的经验,帮忙看看吧
stevensn
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2010-12-11
  • 粉丝1
  • 关注0
  • 积分30分
  • 威望58点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-07-08 17:40
没有其他的错误信息了吗?用softice下断点,看看是否在这两个函数之前就出问题了?我猜测是在调用这两个函数之前,系统就已经出错啦,CreatePipe等操作检查了返回值吗?

如果没有其他错误信息,则有一种可能是: 在调用read, write之前,程序已经出错,而程序跳转到乱码处,碰巧执行了重启系统的指令。
日出松山坳,晨钟惊飞鸟
maggie_zhy
驱动牛犊
驱动牛犊
  • 注册日期2008-06-23
  • 最后登录2008-09-10
  • 粉丝1
  • 关注0
  • 积分2分
  • 威望25点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-07-09 10:45
是在CreatePipe就出错了:(

驱动调试有没简单些的方法啊,自己用DbgPrint加了打印,经常会重启,好象打印信息多了也会重启,这是为什么啊?
stevensn
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2010-12-11
  • 粉丝1
  • 关注0
  • 积分30分
  • 威望58点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-07-11 17:06
学用softice或者syser debugger
日出松山坳,晨钟惊飞鸟
游客

返回顶部