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 将尝试读取相同的数据。
有没有办法改善 Linux (4.8) 中串口数据处理的延迟?特别是,在线上的实际数据与 select()
和读取 read()
功能在此端口 return.
现在,我的测量值显示为 350 微秒。进程运行,优先级SCHED_RR
90。有没有办法缩短这个时间,或者我必须更换驱动程序?我使用的是 PERICOM (PI7C9X7954) 的 16C550 兼容芯片。
所以为了解决这个问题,我不得不在用户 space 中编写自己的驱动程序。这不是很困难,只是弄清楚了如何正确配置芯片。使用内存映射 IO 访问芯片。可以从 /sys/dev/char/<major>:<minor>/iomem_base
文件中读取内存偏移量。
只需要确保端口永远不会打开。否则 OS 将尝试读取相同的数据。