阿波罗网络UDP陷入死循环的问题(无操作系统)

2019-07-20 01:44发布

使用原子哥的阿波罗STm32F429开发板,在“网络实验3 RAW_UDP实验”的基础上修改代码,使用8089端口接收网络调试助手的数据(1.3k左右),接收到数据后,通过8089端口将数据直接发送回网络调试助手,网络调试助手使用1ms的间隔尺寸发送数据,大约1小时内,程序将会不停进ETH_IRQHandler中断, 中断.png
进中断后,程序一直读到有数据,不停执行while循环中的lwip_pkt_handle();函数,但进入处理函数后,又不能读到数据,使用调试模式跟进,发现在HAL_ETH_GetReceivedFrame(ETH_HandleTypeDef *heth)函数中,执行__HAL_LOCK(heth);之后就直接跳出了,
未命名-3.jpg
未命名-4.jpg
未命名-5.jpg
未命名-6.jpg
如此就导致程序一直在中断中的while循环中。
因为对网络底层不熟,所以希望原子哥和论坛里的大大们帮忙看看如何处理,代码在附件中,串口调试使用的是串口3(貌似串口1插上后,程序经常会出现不能运行的情况,使用仿真模式,程序都执行不到main函数)。

网络实验3 RAW_UDP实验(发送一段时间,卡死).rar (1.69 MB, 下载次数: 0) 2019-5-22 18:14 上传 点击文件名下载附件





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。