Linux read()延迟

时间:2017-03-03 20:55:38

标签: linux linux-kernel linux-device-driver uart

有没有办法改善Linux(4.8)中串口数据处理的延迟?特别是,该行上的实际数据与此端口上的select()和读取read()函数之间的时间返回。Scope trace of data on line and read complete (blue)

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

1 个答案:

答案 0 :(得分:1)

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

enter image description here

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