我们这个系统有三个网口,第一个网口使用mpc850的SCC实现,第二个和第三个使用CS8900实现。第二个和第三个使用相同的驱动代码。
如果三个网口同时收到广播报文,中断顺序是网口2、网口1、网口3,他们的中断都会调用netjobAdd把相应的工作添加到netTask中。netTask的处理顺序是网口2、网口2、网口1。即网口3没处理,网口2处理了两次。
修改驱动,为网口2、3的netJobAdd调用不同的处理函数,确定了网口2确实是处理了两次,网口3未处理。
如果拔掉网口2的网线,网口2收不到广播报文的时候,网口3可以正常处理。
请问哪位大虾遇到过类似问题,请多指教