我正在使用基于 2.6.32 OMAP 的 linux 内核。我观察到在高速数据速率(串行端口设置为 460800 波特率)下,串行端口 HW fifo 溢出发生。
串口被配置为在 rx 和 tx 两个方向上每 8 字节产生一次中断(即当串口 HW fifo 为 8 字节时,产生一次从串口读取数据的全串口中断)。
我正在连续传输 114 字节数据包(串行驱动程序不知道数据包模式,它以原始模式接收数据)。根据计算,
460800 位/秒 => 460800/10 = 46080 字节/秒(其中 1 个停止位和 1 个起始位)所以在 1 秒内我可以在最坏的情况下传输 46080/114 => 404.21 个数据包而没有任何问题。
但是,我希望串行端口每秒至少处理 1000 个数据包,因此我已将串行驱动程序配置为每 8 个字节生成一次中断。
我使用 Windows XP 进行了同样的尝试,并且每秒最多可以读取 600 个数据包。
您认为在上述情况下这在 linux 上可行吗?或者我错过了什么?让我知道你的意见。
也有人可以发送一些需要在 .config 文件中配置的重要配置设置。我无法附加 .config 文件,否则我可以分享它。