当前位置:  技术问答>linux和unix

(cdc-acm.c)usb转串口驱动中usb读数据问题:usb->status=-2

    来源: 互联网  发布时间:2016-04-30

    本文导语:    驱动是内核中的cdc-acm.c,现在可以往单片机写数据,但不能读数据,单片机在windows下都可以读写成功,所以单片机端应该没问题。   驱动产生的错误是: acm_control_msg: rq: 0x22 val: 0x3 len: 0x0 result: 0 set line: 38...

  驱动是内核中的cdc-acm.c,现在可以往单片机写数据,但不能读数据,单片机在windows下都可以读写成功,所以单片机端应该没问题。
  驱动产生的错误是:
acm_control_msg: rq: 0x22 val: 0x3 len: 0x0 result: 0
set line: 38400 0 0 5
Entering acm_rx_tasklet
acm_rx_tasklet: sending urb 0xf723cc00, rcv 0xf724e578, buf 0xf724e6b8 //连续出现16次类似的语句
acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: 7
acm_control_msg: rq: 0x22 val: 0x2 len: 0x0 result: 0
set line: 38400 0 0 8
acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: 7
Entering acm_tty_write to write 3 bytes,
acm_control_msg: rq: 0x22 val: 0x3 len: 0x0 result: 0
Entering acm_write_bulk with status 0
set line: 9600 0 0 8
Entering acm_softint
acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: 7
acm_control_msg: rq: 0x22 val: 0x0 len: 0x0 result: 0
acm_ctrl_irq - urb shutting down with status: -2 //连续出现16次相同的语句
  也就是:usb->status=-2
书上错误的解释是: urb被usb-kill-urb调用终止
我觉得原因不对!
请高手指点!

|
声明:我对usb不熟,我只是跟踪了下代码,说说我的看法。


include/asm-generic/errno-base.h:
#define ENOENT           2      /* No such file or directory */  


drivers/usb/class/cdc-acm.c:
function -> acm_ctrl_irq():

        switch (status) {
        case 0:
                /* success */
                break;
        case -ECONNRESET:
        case -ENOENT:
        case -ESHUTDOWN:
                /* this urb is terminated, clean up */
                dbg("%s - urb shutting down with status: %d", __FUNCTION__, status);
                return;


所以status返回了-ENOENT,

有可能调用了usb_kill_urb。你顺着这条路去debug。


注意到
set line: 38400 0 0 5
set line: 38400 0 0 5
突然又变成了
set line: 9600 0 0 5

是不是有可能波特率设置的有问题呢?
请检查。。。。。。。

|
出现的次数应该和你从该设备读取的字节数有关
考虑一下读取时时序的控制

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3