lanbada
驱动牛犊
驱动牛犊
  • 注册日期2002-11-12
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1047回复:2

我还能咋办??100分救急!!!新手的呼叫

楼主#
更多 发布于:2003-03-09 22:26
在自己开发USB驱动之前,参考了周立功的程序,和Zboard程序,出现的问题简直令人郁闷。
开发环境win2000,DS2.7,DDK2000
硬件环境:周立功SMART开发板
要求:1。能将试验板上的红灯点亮,
      2。接收板上的按健输入
固件程序和主机程序,驱动程序用周立功的,其正确性以验证。
但我用DS为其写的驱动,却总是不能工作,(注:我改了GUID,硬件可以梅举,)但问题如下
 
      1。点亮红灯:周立功的程序用WRITEFILE写了几个数据,红灯即亮。
    可如果换成我的驱动,就看见绿路灯闪一下,红灯不亮。
(注:固件相同,我的驱动写函数完全由DS生成)
   郁闷吧!!
     2。接收板上按建输入:其思路为先deviceiocontrol成功后在用readfile具体如下:
bResult = DeviceIoControl(hDevice,
IOCTL_READ_REGISTERS,
(PVOID)&ioBlock, sizeof(IO_BLOCK),
(PVOID)&c, 1,
&nBytes, NULL);
   :
    :
readfile()
    :
我的驱动中deviceioctrl响应部分代码如下(也就是出错处,我没搞清在那)PVOID ioBuffer= I.IoctlBuffer();  
ioBlock=(PIO_BLOCK) ioBuffer;
    length=ioBlock->uLength;
    wValue=(USHORT)ioBlock->uOffset;
wIndex=(USHORT)ioBlock->uIndex;

PURB pUrb=m_Lower.BuildVendorRequest(
                (unsigned char *)I.IoctlBuffer(),  
length, 0x0, 0x0C,    wValue TRUE,
0,
    NULL,              //link
    wIndex,
               URB_FUNCTION_VENDOR_DEVICE,   //function
               NULL    //urb If equal to NULL, a new URB is allocated.
);

T<<\"entr submit\"<<i<<eol
  status=m_Lower.SubmitUrb(pUrb, NULL, NULL, 15000l);
就出现异常,softice弹处,从显示看
进入status=m_Lower.SubmitUrb(pUrb, NULL, NULL)时出错,
可这是我参考Zboard的驱动写的呀!!
错误提示:break due to page fault (0e)
清各路高手指点一二
 :( :(
 谢谢!!
lvwj
驱动老牛
驱动老牛
  • 注册日期2001-08-21
  • 最后登录2021-01-31
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望181点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-03-21 17:10
[quote]用DS的时候,未选internal device driver选项,即未对irp_mj――internal_device,IRP请求做处理,不知有影响吗??
[quote]

当然有了. usb 就用的 internal_device,IRP

www.bjjcz.com
lanbada
驱动牛犊
驱动牛犊
  • 注册日期2002-11-12
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-10 09:28
自己顶一下
顺便说一下:
用DS的时候,未选internal device driver选项,即未对irp_mj――internal_device,IRP请求做处理,不知有影响吗??
游客

返回顶部