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

tty设备驱动问题--为什么设备会把接收到的数据又发送出去?详细见内

    来源: 互联网  发布时间:2016-01-16

    本文导语:  调试设备时,发现没有对设备发送数据,但设备的接收端总会收到一些数据。 跟踪发现无用数据是linux-2.4.19/drivers/char/serial.c里的rs_put_char函数写进xmit.buf,最后被中断函数发送出去的。 而这些无用数据恰好是从设备...

调试设备时,发现没有对设备发送数据,但设备的接收端总会收到一些数据。

跟踪发现无用数据是linux-2.4.19/drivers/char/serial.c里的rs_put_char函数写进xmit.buf,最后被中断函数发送出去的。
而这些无用数据恰好是从设备接收来的数据。为什么会这样呢?
n_tty.c中似乎有对rs_put_char函数的间接调用,原理是什么呢?rs_put_char原本应该是应用程序调用的啊……迷糊中……

如何让rs_put_char函数只发送应用程序传给设备的数据呢?
望高手指教……

static void rs_put_char(struct tty_struct *tty, unsigned char ch)
{
struct async_struct *info = (struct async_struct *)tty->driver_data;
unsigned long flags;

if (serial_paranoia_check(info, tty->device, "rs_put_char"))
return;

if (!tty || !info->xmit.buf)
return;

save_flags(flags); cli();
if (CIRC_SPACE(info->xmit.head,
       info->xmit.tail,
       SERIAL_XMIT_SIZE) == 0) {
restore_flags(flags);
return;
}
info->xmit.buf[info->xmit.head] = ch;
info->xmit.head = (info->xmit.head + 1) & (SERIAL_XMIT_SIZE-1);
restore_flags(flags);
}

|
Linux的串口默认是调试模式的,它就是接到你发出的数据然后回传,设下相应的参数就可以关掉这种模式

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












  • 相关文章推荐
  • /dev/tty和/dev/tty0有啥区别?
  • zhcon-0.2.3安装好后,执行zhcon命令出错:/dev/pts/0 is not real tty or vc. Please exit current tty and try again.
  • tty终端的问题
  • 关于TTY的问题
  • 关于tty函数的read函数的小问题
  • 有关TTY端口的一些基本概念
  • 如何增加tty?
  • stdin如何伪装成tty?
  • 从 linux 内核分解出 tty 驱动
  • 高手请进,linux9中关于文本终端1(tty1)死机问题?
  • 关于LINUX的键盘/dev/tty
  • 请问在一些驱动中ty,tty分别是什么单词的所写?
  • 请问:从哪个header文件中看struct tty_driver的定义
  • linux 内核态能访问 用户态的 tty 终端吗?
  • 请问怎样将系统信息不显示在主控台(tty1)上.高分,再加分的 !!
  • tty input
  • tty 控制台录制程序 ttyrec
  • 在unix下,如何用C程序获取当前登陆的tty号
  • 关于/dev/tty和/dev/fd0
  • tty_insert_flip_string以及read BUG


  • 站内导航:


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

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

    浙ICP备11055608号-3