OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3249|回复: 1

STM32F767裸机运行LWIP+UDP发送以太网数据包,一段时间后死机的问题

[复制链接]

1

主题

1

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2019-2-20
在线时间
10 小时
发表于 2019-2-22 09:19:16 | 显示全部楼层 |阅读模式
1金钱
平台:STM32F767阿波罗

程序:在“网络实验3 RAW_UDP实验”基础上修改,原程序是每次按下KEY0后发送一个数据区为“Apollo STM32F4/F7 UDP demo send data”的UDP包到目标主机,我将其功能修改成,按下KEY0后,就一直循环发送数据包到目标主机。所以只修改了例程中的udp_demo.c文件。

遇到问题:
1. 每个包发送不加延时,udp_send 函数会返回ERR_USE(-8)的错误,并伴随丢包现象。 个人认为这个跟LWIP的机制有关,它不足以支撑简单粗暴的while循环发送,或者说我们设计初就需考虑到网络传输的能力。现在我是每次发包都加100us的延时,就不会再有这个错误,但问题在于,为了提升我的发送速率又保证稳定性,我到底可以将延时降到多少?LWIP哪些参数的调整会有利于提高频率发包这种场景?增大MEM_SIZE,PBUF_POOL_SIZE等?


2. 长时间测试会死机。开始觉得有可能跳到HardFault那里,但是如果真的是这种情况,我还可以增加什么手段去定位这个问题,看是哪里引起的?因为直接用例程来改,内存分配/回收这些应该是安全的。我也尝试过连着调试器进行测试,但死机之后点击调试页面的暂停按钮,已不能定位到死机的位置。附件是我的udp_demo.c文件。

2202.png
2201.png

udp_demo.rar

2.94 KB, 下载次数: 21

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-10-15
在线时间
7 小时
发表于 2019-11-28 09:47:27 来自手机 | 显示全部楼层
楼主问题解决了吗?我和你遇到了一样的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 07:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表