免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: jordonlee
打印 上一主题 下一主题

at指令后的奇怪反应 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-06-01 18:23 |只看该作者
EC1260我以前试了但是没有反应,官方网上说支持2.6.18以上内核
我用的就是通用驱动

论坛徽章:
0
12 [报告]
发表于 2009-06-02 20:05 |只看该作者
如果关回显该现像就会不存在,具体原因请见/driver/char/n_tty.c 中函数erase

论坛徽章:
0
13 [报告]
发表于 2009-06-25 12:09 |只看该作者
原帖由 jordonlee 于 2009-6-1 09:44 发表
忘了说一句,同样的应用程序在pc上是可以正常运行的,所以我个人觉得at指令应该没有问题

我发的指令是"at\r"也是就说在at指令之后用了"\r",在at指令规范中它代表指令结束符,谢谢




你好,我现在也碰到了类似的问题,请问你有进展吗?

难道pc的驱动就不能用在开发板上吗,好像也没有板级相关的code阿。
另外你是如何发at命令的阿,自己写的应用程序吗,我只是用echo的。

论坛徽章:
0
14 [报告]
发表于 2009-06-25 16:13 |只看该作者
这是下正常现象
关闭回显就可以了。
也可以用命令ate0

论坛徽章:
0
15 [报告]
发表于 2009-06-26 11:54 |只看该作者

回复 #15 jordonlee 的帖子

请问如何关闭回显呢?

我现在的情况是如果发个AT过去的话,会不停的发A,然后系统就crash了:

------------[ cut here ]------------
WARNING: at drivers/usb/zteserial/usb-serial.c:338 serial_write_room+0x5c/0x6c()
Modules linked in: bmm
[<c00773a8>] (dump_stack+0x0/0x14) from [<c009cef8>] (warn_on_slowpath+0x4c/0x6
[<c009ceac>] (warn_on_slowpath+0x0/0x6 from [<c0254410>] (serial_write_room+0x5c/0x6c)
r6:c7371000 r5:c7371000 r4:c737a600
[<c02543b4>] (serial_write_room+0x0/0x6c) from [<c01c0190>] (tty_write_room+0x24/0x30)
r5:00000041 r4:c7371000
[<c01c016c>] (tty_write_room+0x0/0x30) from [<c01bddc0>] (opost+0x1c/0x1c0)
[<c01bdda4>] (opost+0x0/0x1c0) from [<c01bdfa4>] (echo_char+0x40/0x70)
r5:c7371000 r4:00000041
[<c01bdf64>] (echo_char+0x0/0x70) from [<c01bef58>] (n_tty_receive_buf+0x4c0/0xe8c)
r5:00000001 r4:00000041
[<c01bea98>] (n_tty_receive_buf+0x0/0xe8c) from [<c01c2270>] (flush_to_ldisc+0xf4/0x18
[<c01c217c>] (flush_to_ldisc+0x0/0x18 from [<c01c234c>] (tty_flip_buffer_push+0x48/0x5
r8:00000000 r7:c735fbe0 r6:c737a600 r5:c7249720 r4:c7371000
[<c01c2304>] (tty_flip_buffer_push+0x0/0x5 from [<c0256bd8>] (usb_serial_generic_read_bulk_callback+0x140/0x18
[<c0256a98>] (usb_serial_generic_read_bulk_callback+0x0/0x18 from [<c0239778>] (usb_hcd_giveback_urb+0x7c/0x10c)
r8:00000012 r7:c708a0d0 r6:00000000 r5:c708a000 r4:c7249720
[<c02396fc>] (usb_hcd_giveback_urb+0x0/0x10c) from [<c024b4d4>] (finish_urb+0x70/0x9c)
r6:00000000 r5:c7249720 r4:c708a000
[<c024b464>] (finish_urb+0x0/0x9c) from [<c024b5d8>] (takeback_td+0xd8/0xe
r7:c708a0d0 r6:ff669040 r5:c7249720 r4:c73ab220
[<c024b500>] (takeback_td+0x0/0xe from [<c024b7c0>] (dl_done_list+0x1d8/0x288)
r7:c708a0d0 r6:c708a0d0 r5:ff66a080 r4:00000000
[<c024b5e8>] (dl_done_list+0x0/0x288) from [<c024eac8>] (ohci_irq+0x14c/0x214)
[<c024e97c>] (ohci_irq+0x0/0x214) from [<c0239b24>] (usb_hcd_irq+0x44/0xa4)
r7:00000000 r6:00000003 r5:00000093 r4:c708a000
[<c0239ae0>] (usb_hcd_irq+0x0/0xa4) from [<c00c63c8>] (handle_IRQ_event+0x44/0x84)
r5:00000000 r4:c723e740
[<c00c6384>] (handle_IRQ_event+0x0/0x84) from [<c00c80a8>] (handle_level_irq+0x78/0xf0)
r7:c04fcebf r6:00000000 r5:00000003 r4:c047d75c
[<c00c8030>] (handle_level_irq+0x0/0xf0) from [<c0072060>] (asm_do_IRQ+0x60/0x8c)
r5:c050a80c r4:00000003
[<c0072000>] (asm_do_IRQ+0x0/0x8c) from [<c0072a90>] (__irq_svc+0x30/0x100)


如果只发t的话,log如下,感觉也不正常,还请大虾指教!
先谢过了!

echo "t" > /dev/ttyUSB0serial_open.
usb_serial_generic_open - port 0.
zte ev enter---

result = 0
result = 7
generic ttyUSB0: zte_ev_usb_serial_init - length = 7, data = 60 4d 2f 00 00 00 08
result = 7
generic ttyUSB0: zte_ev_usb_serial_init - length = 7, data = 80 25 00 00 00 00 08
result = 0
result = 7
generic ttyUSB0: zte_ev_usb_serial_init - length = 7, data = 60 4d 2f 00 00 00 08
result = 7
generic ttyUSB0: zte_ev_usb_serial_init - length = 7, data = 80 25 00 00 00 00 08
serial_write_room - port 0,port->port.count=1.
usb_serial_generic_write_room - port 0.
usb_serial_generic_write_room - returns 64.
serial_write - port 0, 1 byte(s).
usb_serial_generic_write - port 0.
generic ttyUSB0: usb_serial_generic_write - length = 1, data = 74 ,the char is :t  
serial_write_room - port 0,port->port.count=1.
usb_serial_generic_write_bulk_callback - port 0.
usb_serial_generic_write_room - port 0.
usb_serial_generic_write_room - returns 64.
serial_write - port 0, 1 byte(s).
usb_serial_generic_write - port 0.
generic ttyUSB0: usb_serial_generic_write - length = 1, data = 0d ,the char is :
  
serial_write - port 0, 1 byte(s).
usb_serial_generic_write_bulk_callback - port 0.
usb_serial_generic_write - port 0.
generic ttyUSB0: usb_serial_generic_write - length = 1, data = 0a ,the char is :
  
usb_serial_port_work - port 0.
usb_serial_generic_write_bulk_callback - port 0.
usb_serial_port_work - port 0.
usb_serial_generic_close - port 0.
zte ev exit---
result = 0
result = 0
result = 7
generic ttyUSB0: zte_ev_usb_serial_exit - length = 7, data = 60 4d 2f 00 00 00 08
result = 7
generic ttyUSB0: zte_ev_usb_serial_exit - length = 7, data = 00 c2 01 00 00 00 0
result = 0
result = 7
generic ttyUSB0: zte_ev_usb_serial_exit - length = 7, data = 60 4d 2f 00 00 00 08
result = 7
generic ttyUSB0: zte_ev_usb_serial_exit - length = 7, data = 00 c2 01 00 00 00 08
result = 0
usb_serial_generic_read_bulk_callback - port 0
usb_serial_generic_read_bulk_callback - nonzero read bulk status received: -2

论坛徽章:
0
16 [报告]
发表于 2009-06-26 14:52 |只看该作者
关闭回显的办法:
1、设置termios,具体google一下
2、第一个指令用ate0就OK了,这个指令就是关闭回显的指令

论坛徽章:
0
17 [报告]
发表于 2009-06-26 16:27 |只看该作者

回复 #17 jordonlee 的帖子

已经试过,可以了!

谢谢了!

论坛徽章:
0
18 [报告]
发表于 2010-06-21 11:03 |只看该作者
大家好!
小弟也遇到和楼主十分类似的问题
不过我的情况更为严重
只要发AT command给USB设备
terminal就会hang住

我的环境如下:
Target board: SigmaDesign 8634
kernel: 2.6.15 (SigmaDesign SDK)
USB设备:Huawei E220 3.5G modem
驱动: kernel内建之usb-serial.ko 已确认设备之product ID与verdor ID在支援的清单内。
现象: 1. 手动挂载usb-serial.ko
          2. 插入3.5G modem, 此时3.5G modem会被误判为USB mass storage.
          3. 使用usb-modeswitch将设备切换为ttyUSB0.
          4. echo "ATI" > /dev/ttyUSB0 (以上步骤在PC linux上一切正常,此时3.5G modem会回应制造厂商,model name以及版本等资讯)
          5. terminal hang住,Ctrl + C无法跳出程序。

以下是发AT command后的message:

uclibc[mark]$
ttyS0 wait until sent...
waiting ttyS0...(0)
ttyS0 wait until sent...
waiting ttyS0...(0)
<rmmod usbserial;insmod usbserittyS0 wait until sent...rial.ko vendor=0x12d1
al.ko vendor=0x1waiting ttyS0...(70)
2d1 p                       waiting ttyS0...(3
2d1 p                       waiting ttyS0...(3                             roduct=0xwaiting ttyS0.
..(6)
1003
usbcore: deregistering driver pl2303
drivers/usb/serial/usb-serial.c: USB Serial deregistering driver pl2303
usbcore: deregistering driver usbserial_generic
drivers/usb/serial/usb-serial.c: USB Serial deregistering driver generic
usbcore: deregistering driver usbserial
[Mark] usb_serial_init!!
usbcore: registered new driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
[Mark] Device matched!!!
usbserial_generic 2-2:1.0: generic converter detected
usb 2-2: generic converter now attached to ttyUSB0
[Mark]ttyUSB attached completely!!
[Mark] Device matched!!!
usbserial_generic 2-2:1.1: generic converter detected
usb 2-2: generic converter now attached to ttyUSB1
[Mark]ttyUSB attached completely!!
usbcore: registered new driver usbserial_generic
drivers/usb/serial/usb-serial.c: USB Serial Driver core
ttyS0 wait until sent...
waiting ttyS0...(0)
uclibc[mark]$
ttyS0 wait until sent...
waiting ttyS0...(0)
ttyS0 wait until sent...
waiting ttyS0...(0)
uclibc[mark]$
ttyS0 wait until sent...
waiting ttyS0...(0)
ttyS0 wait until sent...
waiting ttyS0...(0)
uclibc[mark]$
ttyS0 wait until sent...
waiting ttyS0...(0)
ttyS0 wait until sent...
waiting ttyS0...(0)
uclibc[mark]$ echo ATI > /dev/ttyUSB0
ttyS0 wait until sent...
waiting ttyS0...(0)
opening ttyUSB0...<1>[Mark] ENTER serial_open --- 181!!
[Mark] serial_open--- port->read_urb->transfer_buffer=/bus/usb/drivers/usbserial_generic
drivers/usb/serial/generic.c: usb_serial_generic_open - port 0
[Mark] usb_serial_generic_open--- port->read_urb->transfer_buffer=/bus/usb/drivers/usbserial_generic
drivers/usb/serial/generic.c: usb_serial_generic_write_room - port 0
drivers/usb/serial/generic.c: usb_serial_generic_write_room - returns 64



看来是有莫名的原因导致usbserial和TTY module hang住
若此时拔除3.5G modem会有以下message:

usb 2-2: USB disconnect, address 3
tangox-ohci-hcd tangox-ohci-hcd: IRQ INTR_SF lossage
drivers/usb/serial/generic.c: usb_serial_generic_write_bulk_callback - port 0
drivers/usb/serial/generic.c: usb_serial_generic_write_bulk_callback - nonzero write bulk status rec
eived: -143
tangox-ohci-hcd tangox-ohci-hcd: IRQ INTR_SF lossage
drivers/usb/serial/generic.c: usb_serial_generic_read_bulk_callback - port 0
[Mark] USB SERIAL DEBUG 273!!
drivers/usb/serial/generic.c: usb_serial_generic_read_bulk_callback - nonzero read bulk status recei
ved: -143
ttyUSB0 hangup...
usbserial_generic 2-2:1.0: device disconnected
drivers/usb/serial/generic.c: usb_serial_generic_shutdown
drivers/usb/serial/generic.c: generic_cleanup - port 1
generic ttyUSB1: generic converter now disconnected from ttyUSB1
usbserial_generic 2-2:1.1: device disconnected
release_dev of ttyUSB0 (tty count=1)...<7>drivers/usb/serial/generic.c: usb_serial_generic_close - p
ort 0
drivers/usb/serial/generic.c: generic_cleanup - port 0
drivers/usb/serial/generic.c: usb_serial_generic_shutdown
drivers/usb/serial/generic.c: generic_cleanup - port 0
generic ttyUSB0: generic converter now disconnected from ttyUSB0
freeing tty structure...<7>ttyS0 wait until sent...
waiting ttyS0...(0)
uclibc[mark]$ Color NettyS0 wait until sent...
tTerm
waiting ttyS0...(0)
-sh: Color: command not found
ttyS0 wait until sent...
waiting ttyS0...(0)

以上有哪位高手能给些意见吗?
感激不尽 !

论坛徽章:
0
19 [报告]
发表于 2010-06-22 09:11 |只看该作者
linux 下的回车换行和windows下的是不一样的, 看看是不是这个问题.

论坛徽章:
0
20 [报告]
发表于 2010-06-22 11:15 |只看该作者
linux 下的回车换行和windows下的是不一样的, 看看是不是这个问题.
yikaikai 发表于 2010-06-22 09:11
能否请您在说明清楚些呢?
小弟只有在PC Linux( x86架构; kernel 2.6.1 以及 target上(MIPS架构;kernel 2.6.15)测试过
测试时是下指令,并不是使用shellscript,所以不太了解您所说的换行是什么意思。
谢谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP