shlei20
驱动牛犊
驱动牛犊
  • 注册日期2002-02-01
  • 最后登录2003-02-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2327回复:6

usb驱动开发感受(胡诌几句,抛砖引玉!)

楼主#
更多 发布于:2002-06-06 20:09
    到今天,也就是刚才19点,6月6号为止,usb产品总算有了点眉 目了!
   有些体会,也可说是困惑,说出来想和大家讨论!
   首先说明,我是第一次开发驱动程序,因此水平有限啊!有些问题可能肤浅啊,望大虾,高手们包涵!并希望能够指点迷津啊! 呵呵
   总的来说,usb设备给我的感觉太脆弱!

   我的usb设备使用USBN9603,有6个endpoint,设备端只实现对两个endpoint(这两个断点有64字节)的读写操作。(bulk方式的。(具体我不清楚下面是怎么做的,由其他同事负责的。)
  
    我的驱动程序中自定义IOCTLs 控制代码,以实现对上述两个endpoint对应的pipe 进行读写操作。
    驱动开发完后,对设备的配置等都很正常! 但到真正让驱动和设备干点正事的时候,麻烦来了!一句话:读写的结果都不是自己预期希望得到的。
   出现了以下几个现象:
    第一种情况,   递交给下层bus driver的urb 能够被处理,但urb的status code不对。主要有这些返回码
     1。USBD_STATUS_DEV_NOT_RESPONDING (0xc0000005L)
     照字面的意思,好象是下面的设备没有反应,那么到底是什      么 因会导致这种情况的发生呢?

     2。USBD_STATUS_DATA_UNDERRUN       (0xc0000009L)
    这又是什么意思,怎么产生的?该怎么解决?
    
     3。USBD_STATUS_BUFFER_OVERRUN      (0xCOOOOOOCL)
      这个呢?  

     4,出现上面情况后,紧跟着可能出现的URB status
      code 是
        USBD_STATUS_ENDPOINT_HALTED    (0xC0000030L)
        这是端点停止的情况,一般在什么时候,在程序的什么地方
       对它进行处理呢?

    第二种情况是bus driver 一直处理递交给她的URB 不返回,在递交URB 前初始化了一个event ,但一直在等待
              KeWaitForSingleObject(...);
       遇到这种现象,驱动该如何处理?

      另外,是不是USB 芯片是不是已经自动实现了对12种标准命令的处理? 还是自己编firmware 来实现?
     URB_FUNCTION_SELECT_CONFIGURATION
     URB_FUNCTION_SELECT_INTERFACE
     URB_FUNCTION_ABORT_PIPE
    URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL
    URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL
    URB_FUNCTION_GET_FRAME_LENGTH
    URB_FUNCTION_SET_FRAME_LENGTH
    URB_FUNCTION_GET_CURRENT_FRAME_NUMBER
    URB_FUNCTION_CONTROL_TRANSFER
    URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER
    URB_FUNCTION_ISOCH_TRANSFER
    URB_FUNCTION_RESET_PIPE

    不好意思!
    
    望大家发表意见啊。
  
      
    
  

              共同努力,共同提高。
 

最新喜欢:

liuxf66liuxf6...
gladiola_jt
驱动牛犊
驱动牛犊
  • 注册日期2002-06-06
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-07 16:28
to shlei20
你好,我正要用USBN9603做个USB通讯的小设备,能否把你的硬件图给我寄一份。
gladiola_jt@sohu.com
谢谢
panda_lu8888888
驱动小牛
驱动小牛
  • 注册日期2002-06-03
  • 最后登录2002-07-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-07 10:05
你们开发了个什么产品啊,怎么这么长时间??
风儿
hswqs
驱动小牛
驱动小牛
  • 注册日期2001-03-27
  • 最后登录2012-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-06 22:55
你的公司就这样吗?

对不起,我说话有点直,但事实真如你所说的话,努力学习吧,弄个技术骨干很容易。
shlei20
驱动牛犊
驱动牛犊
  • 注册日期2002-02-01
  • 最后登录2003-02-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-06 21:51
4 个月了啊。本以为驱动编完,固件写完就万事ok,了,没想到调试中出现这么多问题!
  到现在也不能说真正完成。
apmusb
游客
游客
5楼#
发布于:2002-06-06 21:22
想问一下shlei20兄,从开始开发到成功用了多少时间啊!我的情况和你差不多,但我还没有头绪呢!
91ming
驱动小牛
驱动小牛
  • 注册日期2001-12-03
  • 最后登录2005-06-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-06-06 20:12
不错,以后继续
不断挖掘、开拓希望
游客

返回顶部