Linux 读取()延迟

Linux read() latency

有没有办法改善 Linux (4.8) 中串口数据处理的延迟?特别是,在线上的实际数据与 select() 和读取 read() 功能在此端口 return.

之间的时间

现在,我的测量值显示为 350 微秒。进程运行,优先级SCHED_RR 90。有没有办法缩短这个时间,或者我必须更换驱动程序?我使用的是 PERICOM (PI7C9X7954) 的 16C550 兼容芯片。

所以为了解决这个问题,我不得不在用户 space 中编写自己的驱动程序。这不是很困难,只是弄清楚了如何正确配置芯片。使用内存映射 IO 访问芯片。可以从 /sys/dev/char/<major>:<minor>/iomem_base 文件中读取内存偏移量。

只需要确保端口永远不会打开。否则 OS 将尝试读取相同的数据。