我正在通过USB2.0构建和传输来自应用程序的以太网数据包。
在USB类驱动程序中,我发出了使用usb_submit_urb
将此数据包发送到BULK端点的请求。我的以太网数据包大小为112个字节。我可以在大约200毫秒内传输8000个数据包,而无需考虑演示时间。
我正在进行ioctl
调用,以非常快的速度发送数据包,说我每3-4次使用后拨打ioctl
电话。在我的ioctl
内,我发出了usb_submit_urb
,这是与usb_bulk_msg
不同的非阻止通话。
如果我考虑演示时间,内核恐慌和dmesg日志会读取kernel panic - not syncing : Fatal exception in interrupt
。对于 INFO :通过考虑呈现时间,数据包将在硬件设备中等待,直到timestamp_in_packet ==硬件时间。
我需要了解EHCI在这种情况下的行为方式,或者在这种情况下端点队列的状态。我正在通过USB芯片开发ETH。这种内核恐慌的真正原因是什么?
任何输入都会有很多帮助。