打印
[应用相关]

解决FreeRTOS+LWIP下DHCP获取IP失败的方法及LWIP提速的方案

[复制链接]
2281|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
最近想测试在默认参数下STM32CubeMX生成FreeRTOS+LWIP的网络应用的效率,于是选用STM32F429-Nucleo和STM32CubeMXv5.5作为测试平台,HAL库版本为V1.24.2,keil三级优化。在按板卡选择且外设一切都是默认情况下,勾选了FreeRTOS和LWIP,参数是默认值。生成代码,并移植一份测试程序。结果发现板卡长时间未获取IP。在文件中设置#define LWIP_DEBUG 1以及使能DHCP_DEBUG,发现未能获取的IP的原因是出现了超时。


选择官方程序,未有此现象,说明参数设置有误。于是重新设置一份程序。还是原来的配置,先关闭USB外设,勾选FreeRTOS+LWIP并只生成一个任务,这时DHCP功能起作用,板卡在数秒内获取IP;生成两个任务后板卡长时间未获取IP。说明FreeRTOS的Heap设置过小。将FreeRTOS的Heap设置如下图后DHCP功能正常。

DHCP功能正常后,使用jperf-2.0.0测速结果如下:

速度不稳且速度太低。
按如下修改参数:

修改后的速度如下:

速度平稳且有明显的提高。虽然离满速还有距离,但修改思路仍有借鉴意义。在此也感谢野火在教程中提供的关于LWIP参数优化的方法。
测试程序:
DHCP 未优化.zip (2.19 MB) DHCP 优化.zip (2.2 MB)
测速软件:
Jperf.zip (2.7 MB)

使用特权

评论回复
沙发
纪国圣|  楼主 | 2020-2-17 16:28 | 只看该作者
欢迎大家分享提速的方法

使用特权

评论回复
板凳
王紫豪| | 2020-2-17 19:06 | 只看该作者
受教了!

使用特权

评论回复
地板
hao2014| | 2020-7-17 12:04 | 只看该作者
纪国圣 发表于 2020-2-17 16:28
欢迎大家分享提速的方法。

8-9M的速度已经很快了

使用特权

评论回复
5
FeCodeTech| | 2020-7-22 17:00 | 只看该作者
感谢楼主,昨天调试F429+FreeRTOS V1 ,eth插入电脑没有发现设备获取IP地址,今晚回去按照楼主的方法调试调试。

使用特权

评论回复
6
yoghen| | 2022-11-24 14:29 | 只看该作者
受教了,非常感谢。没想到 STM32F429 居然可以跑到80多Mbps,我还以为一般单片机能跑满10M就不不得了了

使用特权

评论回复
7
miao2008| | 2023-4-17 11:32 | 只看该作者
我调整了堆空间的大小  但是还是获取不到IP

使用特权

评论回复
8
AloneKaven| | 2023-4-17 22:55 | 只看该作者
这速度已经很快了

使用特权

评论回复
9
houcs| | 2023-6-8 20:46 | 只看该作者
没想到 STM32F429 居然可以跑到80多Mbps

使用特权

评论回复
10
guoyt| | 2023-6-8 20:48 | 只看该作者
我还以为一般单片机能跑满10M就不不得了了

使用特权

评论回复
11
houcs| | 2023-6-8 20:49 | 只看该作者
我调整了堆空间的大小  但是还是获取不到IP

使用特权

评论回复
12
午夜粪车| | 2023-6-8 20:51 | 只看该作者

这速度已经很快了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

401

帖子

5

粉丝