nj6961
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2017-01-11
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望221点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1159回复:4

【已经解决其中一个问题】请教driverworks开发USB驱动的问题

楼主#
更多 发布于:2007-07-22 20:53
小弟采用68013A+FPGA+DriverWorks进行开发USB采集卡

1,关于windows下不安全对话框的去除

因为我采用的是计算机通过驱动下载固件的方法
当固件下载成功后,8051会重启EZFX2,windows2000会报一个不安全对话框删除的错误

我在网上找到了如下可能解决方案,

microsoft给出的方法如下
http://support.microsoft.com/kb/298504/zh-cn

网友给出的办法:
[url]http://bbs.zndev.com/read.php?tid=63282 [/url]



但是我不知道在DriverWorks中如何实现,请大侠赐教!


2关于URB发送错误的问题

分配URB后,等待URB发送的完成,但是并不一定每次返回的status都是sucess(ox00000000)!
有时是0x00000001,有时不返回!
请问我是需要在驱动中控制发现错误就重试,还是采取其它的解决办法?!!


因为我用cypress的console读数据,每次都不会出错!说明硬件和固件没有问题!


谢谢大侠了!
QQ25811558,邮箱nj6961@sina.com
nj6961
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2017-01-11
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望221点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2007-07-22 21:12
自己顶一下先!!!!!!!!
nj6961
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2017-01-11
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望221点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-07-22 21:44
已经解决第一个

在头文件中

申明

    virtual NTSTATUS OnQueryCapabilities(KIrp I);
    MEMBER_COMPLETEIRP(USBDRIVERDevice, OnQueryCapabilitiesComplete)

    KUsbLowerDevice        m_Lower;


在cpp文件中添加:

////////////////////////////////////////////////////////////////////////
// USBDRIVERDevice::OnQueryCapabilities
//
// Handler for IRP_MJ_PNP subfunction IRP_MN_QUERY_DEVICE_CAPABILITIES
//
// Input
//        I            Current IRP
//
//    Notes
//        This function is implemented to allow surprise removal of the
//        thermometer
//
NTSTATUS USBDRIVERDevice::OnQueryCapabilities(KIrp I)
{
    t << "Entering USBDRIVERDevice::OnQueryCapabilities\n";

    I.CopyParametersDown();
    I.SetCompletionRoutine(LinkTo(OnQueryCapabilitiesComplete), this, TRUE, TRUE, TRUE);


    return m_Lower.PnpCall(this, I);
}


NTSTATUS USBDRIVERDevice::OnQueryCapabilitiesComplete(KIrp I)
{
    if (I->PendingReturned)
        I.MarkPending();

    I.DeviceCapabilities()->SurpriseRemovalOK = TRUE;

    return STATUS_SUCCESS;
}







具体可参照driverworks中的例子USBTherm

  
nj6961
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2017-01-11
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望221点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2007-07-22 21:45
Re:请教driverworks开发USB驱动的问题
跪求大侠赐教第二个!
nj6961
驱动牛犊
驱动牛犊
  • 注册日期2004-11-17
  • 最后登录2017-01-11
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望221点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2007-07-23 20:21
也解决了第二个!
DS2.6BULK传输的bug换用DS2.7,ok!
游客

返回顶部