[应用相关] 解决FreeRTOS+LWIP下DHCP获取IP失败的方法及LWIP提速的方案

[复制链接]
4331|13
 楼主| 纪国圣 发表于 2020-2-17 16:22 | 显示全部楼层 |阅读模式
最近想测试在默认参数下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功能正常。
修改FreeRTOS的Heap以使得DCHP成功获取IP.png
DHCP功能正常后,使用jperf-2.0.0测速结果如下:
未优化速度.png
速度不稳且速度太低。
按如下修改参数:
优化1.png 优化2.png
修改后的速度如下:
优化速度.png
速度平稳且有明显的提高。虽然离满速还有距离,但修改思路仍有借鉴意义。在此也感谢野火在教程中提供的关于LWIP参数优化的方法。
测试程序:
DHCP 未优化.zip (2.19 MB, 下载次数: 25) DHCP 优化.zip (2.2 MB, 下载次数: 59)
测速软件:
Jperf.zip (2.7 MB, 下载次数: 42)

 楼主| 纪国圣 发表于 2020-2-17 16:28 | 显示全部楼层
欢迎大家分享提速的方法
王紫豪 发表于 2020-2-17 19:06 | 显示全部楼层
受教了!
hao2014 发表于 2020-7-17 12:04 | 显示全部楼层
纪国圣 发表于 2020-2-17 16:28
欢迎大家分享提速的方法。

8-9M的速度已经很快了
FeCodeTech 发表于 2020-7-22 17:00 | 显示全部楼层
感谢楼主,昨天调试F429+FreeRTOS V1 ,eth插入电脑没有发现设备获取IP地址,今晚回去按照楼主的方法调试调试。
yoghen 发表于 2022-11-24 14:29 | 显示全部楼层
受教了,非常感谢。没想到 STM32F429 居然可以跑到80多Mbps,我还以为一般单片机能跑满10M就不不得了了
miao2008 发表于 2023-4-17 11:32 | 显示全部楼层
我调整了堆空间的大小  但是还是获取不到IP
AloneKaven 发表于 2023-4-17 22:55 | 显示全部楼层
这速度已经很快了
houcs 发表于 2023-6-8 20:46 | 显示全部楼层
没想到 STM32F429 居然可以跑到80多Mbps
guoyt 发表于 2023-6-8 20:48 | 显示全部楼层
我还以为一般单片机能跑满10M就不不得了了
houcs 发表于 2023-6-8 20:49 | 显示全部楼层
我调整了堆空间的大小  但是还是获取不到IP
午夜粪车 发表于 2023-6-8 20:51 | 显示全部楼层

这速度已经很快了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

407

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部