标签: linux linux-kernel linux-device-driver uart
有没有办法改善Linux(4.8)中串口数据处理的延迟?特别是,该行上的实际数据与此端口上的select()和读取read()函数之间的时间返回。
select()
read()
现在,我的测量显示350微秒。该进程以SCHED_RR优先级90运行。有没有办法缩短这个时间或者我必须更改驱动程序?我使用的是PERICOM的16C550兼容芯片(PI7C9X7954)。
SCHED_RR
答案 0 :(得分:1)
因此,为了解决这个问题,我必须在用户空间中编写自己的驱动程序。这不是很困难,只是弄清楚如何正确配置芯片。使用内存映射IO访问芯片。可以从/sys/dev/char/<major>:<minor>/iomem_base文件中读取内存偏移量。
/sys/dev/char/<major>:<minor>/iomem_base
只需要确保端口永远不会打开。否则操作系统将尝试读取相同的数据。