在以太网驱动开发中遇到的问题往往涉及多个层面,包括硬件、驱动代码以及网络协议栈。以下是对这个问题现象的分析和具体排查步骤的详细介绍。


板卡上装有两个网口。当拔掉其中一个网口后,另一个网口停止接收数据。通过打印日志发现,另一个网口没有收到中断信号。
static int irq_count = 0;
void eth_rx_irq_handler(void) {
    irq_count++;
    printk("IRQ triggered, count = %d\n", irq_count);
    ...
}在中断服务程序(ISR)中加入统计计数和详细打印,确认拔插操作后是否仍能收到中断信号。
int phy_status = read_phy_register(PHY_ADDR, PHY_BMSR);
printk("PHY status: 0x%x\n", phy_status);在驱动中打印PHY状态的变化,确认拔插时链路状态是否异常变化。
如果有具体代码片段或更详细的硬件架构描述,可以进一步帮助分析。
以上就是以太网驱动怪事:拔掉一个网口后另一个网口收不到数据?的详细内容,更多请关注php中文网其它相关文章!
 
                 
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                            Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号