IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 关于ttyS0: 1 input overrun(s)错误 -> 正文阅读

[嵌入式]关于ttyS0: 1 input overrun(s)错误

对于这个错误,网上的回答大多千篇一律,我找到两种有代表性的回答。

第一种

linux串口长期工作时,出现提示:ttyS0: 1 input overrun(s)

说明串口已经输入溢出,这时候我们应该将串口的缓冲区进行清除。

在发送命令前,清除缓冲区

在接受数据后,清除缓冲区

清除命令:tcflush(fd, TCIOFLUSH);

当然fd是你串口open时返回的int,这个fd必须有意义(>0);

TCIOFLUSH的意思是清除输入输出缓存。

——————————————————
15.14 Overrun errors on serial port
This is an overrun of the hardware FIFO buffer and you can'tincrease its size. See

第二种

转载:http://blog.chinaunix.net/uid-20201831-id-1636118.html

内容提要:????????这篇文档主要介绍了在错误日志里出现TTY_OVERRUN错误的原因及纠正的方法

说明:
在HACMP环境下的,操作系统的错误日志里经常出现类似如下的错误:

LABEL: ? ? ? ? ?????????TTY_OVERRUN
IDENTIFIER:? ? ? ? ?9D30B78E
Date/Time: ? ? ? Tue Mar ?9 04:18:39 BEIS
Sequence Number: 5593
Machine Id: ? ? ?005A858A4C00
Node Id: ? ? ? ? ibm001
Class: ? ? ? ? ? S
Type: ? ? ? ? ? ?TEMP
Resource Name: ? tty0

Description
RECEIVER OVER-RUN ON INPUT

Failure Causes
EXCESSIVE LOAD ON PROCESSOR

? ? ? ?Recommended Actions
? ? ? ?REDUCE SYSTEM LOAD.
? ? ? ?REDUCE SERIAL PORT BAUD RATE


这篇文档将要详细解释一下产生TTY_OVERRUN错误的原因并提供一些纠正此种错误的方法。

[说明]
? ? ? ?进入一个串口的数据被设备驱动程序带进并存储到内核的一个缓冲器里,在一个用户程序来读取这些数据之前数据一直保存在缓冲器里。TTY_OVERRUN错误不是tty的联接有问题,而是进程发送和接受数据的结果,tty只不过是建立了两个进程之间通讯的联接。当一个进程发送数据太快而另一个进程读取的太慢,错误就会发生,在这种情况下,接受端数据堆积并且溢出缓冲器,在缓冲器里老数据被推出新数据代替进入,错误就被记录到错误日志里。


[原因]?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???
? ? ? ?数据(噪音,真实的数据等)进入串口,但是没有用户进程来读取它,因此溢出缓冲器;如果实际上有一个进程读取数据,但是数据进来的比进程能够处理的速度快这种错误也会发生。这种溢出在集群环境里ttys用作HACMP的心跳联接的情况下比较常见。
? ? ? ?它是由某些事情(可能是系统里一些别的驱动程序)把持着tty的中断以致于他们不能得到足够快地预期防止数据丢失而引起的。


[?解决方法]

? ? 检查看是否有进程在这个tty上运行:

? ? #fuser /dev/ttyX??
? ? #ps -ef | grep ttyX


? ?如果没有进程正在这个TTY上运行:

? ?1.可能端口连接有一个不该连接在上面的设备 ,移出这个设备;

? ?2.设备可能损坏了,更换掉这个设备;

? ?3.电缆可能损坏了,更换掉电缆;

? ?4.线路中可能有电磁干扰,用一根屏蔽了的电缆更换现在的电缆或者是消除电磁干扰的因素。

? ?如果有一个进程正在这个tty上运行:

?? ? ? 使用?"lsattr -El ttyX"?或者使用?"smit tty"?命令进入smit菜单来显示tty的属性,在电缆允许的情况下更改流控制属性(flow control)到“RTS"(这个tty连接的另一端也需要把流控制设定为RTS);
? ? ? ?如果流控制设定为RTS后仍然有溢出错误,调低速率到9600(这需要在连接的两端都要做),你能够通过以下命令来tty正在运行的速率:
?? ? ? #?stty -a < /dev/ttyX
?? ? ? 如果tty被配置为9600,但是stty命令输出显示它正在运行一个更高的速率,那么运行在这个tty上的进程正在改变了速率,在HACMP环境里这个进程是hatsd.
?? ? ? 1. 使用?HACMP/RSCT?配置步骤来降低线路速率到9600:
#smitty clstop - forced (在所有的节点上执行)
#smitty hacmp - configure cluster - cluster topology - configure network modules - chg/show a network module? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?? ? ? 在速率的参数区域更改为9600,然后同步拓扑结构,在所有节点上启动HA;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?? ? ? 2. 使用TTY配置步骤来降低"RECEIVE trigger level"参数到1:? ? ??
# smitty tty ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ?Change / Show Characteristics of a TTY ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ?RECEIVE trigger level ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[1]

[附加信息]
? 如果在检查和纠正了上面提到的所有内容还有TTY_OVERRUN错误发生,那么附加的推荐措施是:增加进程的优先权,升级或者增加处理器,减轻系统的负载。?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:56:09  更:2021-09-09 11:57:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:29:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码