我正在以 460800 波特率运行串行端口。数据连续发送。串行驱动程序数据被传递给用户空间应用程序,用户空间应用程序使用套接字将数据发送到网络应用程序。有时,我得到串行驱动程序 HW Fifo 溢出,因为运行 ISR 或其他中断需要太长时间(我只有以太网、串行和 gp_timer 中断)。另外,我认为有些情况下以太网和串行中断都在中断队列中(我的假设)并且以太网驱动程序中断优先于串行驱动程序中断,同时串行驱动程序 HWFIFO 溢出。
在我禁用数据传输到网络应用程序的那一刻,用户空间的所有数据都接收良好。这让我相信它可能是导致问题的以太网驱动程序。
我想更改串行中断的优先级,以便它在以太网驱动程序中断之前得到服务。你认为改变优先级会解决问题吗?
我在 Linux 2.6.32 ARMV7 上。