本帖最后由 衔胆栖冰 于 2018-1-31 09:22 编辑 大家好,我最近在用STM32F107的以太网接口,外接DM9161AEP PHY,LWIP (1.00版本)。仅使用UDP通信,程序运行了一段时间后,出现网络假死的情况。出错时间随机,长则几天,短则几分钟。 重现方法:用其他设备一直给该设备发送数据IP、端口发送数据,结果很快就出现网络假死的情况,但是单片机的程序还在跑,其他功能正常。 网络假死后只能通过断点重启单片机才能恢复。在网络假死的情况下,(设备定向给PC发数据)用Wireshark工具抓包,PC能收单片机发来的ARP请求。但是单片机收不到任何数据。没有跑系统,单片机裸跑,用查询方式接收数据,网络假死后查询ETH_GetRxPktSize()函数一直返回0。 每一个pbuf_alloc失败都会打印信息,但是在网络死机时并没有发现pbuf_alloc失败的信息。通过串口打印调试信息,正常的时候low_level_input 和low_level_output都有数据;异常时low_level_input没有数据,low_level_output还在发ARP请求数据。通过LWIP_DEBUG,一直有“etharp_timer”和“tcp_slowtmr: no active pcbs”信息输出。 参考了网友“老衲五木”的博客文章,修改了几天代码也没有解决。望各位大神指点迷津,谢谢! |
【MCU实战经验】基于STM32F103C8T6的hart总线调试器设计
求教STM32F103进入STOP模式后用外部中断唤醒的问题
基于STM32F103RCT6的无源蜂鸣器音乐播放(生日快乐歌)
STM32F103c8t6有没有DAC 功能?
STM32F103x中文数据手册
新手求教,为何在我电脑上找不到STM32F1Xx.h文件
金龙107例程汇总(STM32F107)
万利STM32F107VC 原理图
STM32F103 ADC多通道检测必须要DMA吗?
【官方例程】STM32F107以太网官方例程
谢谢
好的,谢谢
解决了,很久没时间上论坛了,哈哈
楼主可否分享一下原因
看一下芯片的技术参考手册,读取 以太网 DMA 丢失帧和缓冲区上溢计数器寄存器 (ETH_DMAMFBOCR),看下实在应用丢包还是在dma控制器丢包,如果是在应用丢包的话看下接收函数中有没有对不完整包的处理。
不完整包的异常处理没有做,107的demo不完善,参考F4的demo就行了
谢谢楼主回复。
您好,lwip网络假死的问题您解决了吗?能否指点一下?谢谢
你有什么问题吗,我没遇到过啥假死,我用107做网络,都几年了,没有问题