STMCU小助手
发布时间:2021-12-17 12:05
|
和我最近测试的结果大致相同,STM32F7 上TCP 速率3Mbps左右。而之前我测试UDP,可以到30Mbps 以上。 1、测试目的$ }- w6 r* E0 c1 f9 r1 @$ L: l! S7 N 在尽量保持硬件和软件一致的前提下,测试LWIP和DJYIP两个协议栈的TCP接收不同包的速度。 2、测试方法; g3 ]- \* J& r" n% n* ` 用一块STM32F7的发送板,应用层无延迟调用TCP发送函数send(),不断发送不同大小的数据包,数据包大小范围64 ~ 1460byte,接收端每1秒统计接收到的数据包,交终端上显示接收的速度。(当然,运行LWIP和DJYIP的两块接收板,运行在相同的主频,协议栈的pbuf缓冲、TCP接收窗口大小、优先级等一致。) 3、软硬件平台4 W; c, X! W T( M) K$ p3 c i 硬件平台9 T" d7 C$ g1 [$ `- y4 Y LWIP DJYIP 运行板件 ST官方板STM32756G-EVAL2 STM32F7核心板( e$ l3 x1 I$ ^6 g 运行主频 200MHz 200MHz% \, J, j, c' g7 { 连接方式 与发送板直连 与发送板直连) }3 a: d7 w1 c9 }3 \4 g 编译调试 MDK eclipse 软件平台 LWIP DJYIP 网络驱动接收方式 中断 中断& b, o4 k) [# @- Z. H% i5 G pbuf大小 16kbytes 16kbytes TCP窗口 2048( L, y$ l2 z% [7 D) N5 }5 f) g 2048# M7 j; p' S- ^: t 其中,运行在STM32756G-EVAL2的LWIP的软件代码,是直接从ST官方下载的STM32Cube_FW_F7_V1.6.0版本固件库, 编译运行在MDK5.12.! e+ l2 z; G7 p( B; y6 D8 V ` 4、测试步骤 (1)源码编写及修改+ g4 ^$ W& l9 y# B 主要是比较基础的socket编程,发送板作为TCP客户端,两块接收板作为TCP服务器,客户端板建立TCP连接后,一直 发送程序,服务器一直接收TCP数据,并统计接收速度。1 f [8 w1 n( f- j- C9 H1 h/ w 对STM32Cube_FW_F7_V1.6.0源码中LWIP的配置,需要修改lwipopts.h,主要修改了如下两行代码1 Z+ ^; N1 u/ b! e! t6 {
5、测试结果 测试结果如下表所示 8 m. r, k5 j+ p+ g 发送包(byte) LWIP(Mbytes/s) DJYIP(Mbytes/s) 1400 3.02 3.181 N$ R4 N. v0 ^) q" Y8 Z/ a 1024 4.22 3.16! C# f3 |. ^2 B: R; {0 {0 C 512 3.07 3- h( Y Q5 g) B4 w- m F& J" F 256 2.02 2.5 128 0.2±0.2 1.76! a. D* n: I+ M4 n 64 0.2±0.2 1.12. Y7 l+ }' ^! D7 j7 s2 d rand*1460 1M内变动 2.528 C- u* T: v0 m4 ^3 U- }- \ 其中,rand是产生0~1的随机数。LWIP这组数据中,1024的速度大于1400,有可能是8 n& x4 z0 g1 V. H 因为1024是2的整数次幂的原因(可能猜测)。 " N6 K5 R6 a2 O3 ~+ Y |
STM32F746G-DISCO移植lvgl9.0性能基准测试
STM32F745 USART1 Bootloader启动失败排查与解决的流程分析
STM32芯片命名规则
STM32 引脚到底有多少?为什么一个引脚能当好几个用?
入门嵌入式,为什么STM32是“优选起步”?
嵌入式-单片机-STM32 EXTI中断
STM32单片机进行除零运算,为何程序不崩溃?
STM32 LL为什么比HAL高效?
STM32时钟详解
2025国庆中秋活动体验报告2——TouchGFX的UI设计
微信公众号
手机版