使用stm32f429的片子,用cube生成包括lwip的示例,无操作系统。不知道什么原因cube的lwip不能选择igmp,只好手动打开此开关,同时为了编译通过关闭了dhcp. 在以太网配置处打开接收组播开关,同时把lwip_process函数加入主循环。外界5ms发一包,不停发组播包。大概正常7,8万包之后,就收不到包了,在底层单步跟踪后发现底层的dma处不停空转,但这时外界是有发包的。过一会又正常了,继续能接受到7,8万包。过一会又不行了。 把接收方式修改为中断方式(cube中无法设置成这样,只能轮询)发现空转时收缓冲区溢出计数一直在增加。 cpu主频是160多兆,主循环没有其他任务,不太可能是由于收包来不及吧。哪位知道这是什么原因呢? |
等到手解答
对呀,是不是溢出了。