硬汉嵌入式论坛

 找回密码
 立即注册
查看: 498|回复: 8
收起左侧

[以太网] 升级CMSIS 到6.2 ping延迟不稳定

[复制链接]

2

主题

7

回帖

13

积分

新手上路

积分
13
发表于 2025-8-26 12:01:01 | 显示全部楼层 |阅读模式
求教大家一个问题:升级了CMSIS 到6.2之后,网络的ping延迟一直比较高,之前都是<1ms的。


环境如下:

目前使用的是STM32H743 ,用的是Keil RTX5带TCPnet。

版本:
CMSIS: 6.2

compiler: compiler version 6
CMSIS driver: 2.10.0
CMSIS driver_STM32: 1.2.0
CMSIS-RTX: 5.9.0
MDK-Middleware: 8.1.0 (含Network库)
STM32H7xx_DFP: 4.1.0



MPU配置:

        MPU_InitStruct.Enable           = MPU_REGION_ENABLE;
        MPU_InitStruct.BaseAddress      = 0x30040000;
        MPU_InitStruct.Size             = ARM_MPU_REGION_SIZE_32KB;
        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
        MPU_InitStruct.IsBufferable     = MPU_ACCESS_BUFFERABLE;
        MPU_InitStruct.IsCacheable      = MPU_ACCESS_NOT_CACHEABLE;
        MPU_InitStruct.IsShareable      = MPU_ACCESS_SHAREABLE;
        MPU_InitStruct.Number           = MPU_REGION_NUMBER2;
        MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL0;
        MPU_InitStruct.SubRegionDisable = 0x00;
        MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;


现象:
因为我只需要网络能在局域网内运行,不需要连接到公网,所以IP是用固定IP。




回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118331
QQ
发表于 2025-8-26 14:52:32 | 显示全部楼层
我这个用的6.10,  过段时间更新,我试试

RTX5全家桶源码综合模板发布V3.0,含FreeRTOS内核版本,将其打造成直接面向实际项目应用的综合框架(2025-03-10)
https://forum.anfulai.cn/forum.p ... 4516&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

4

主题

134

回帖

146

积分

初级会员

积分
146
发表于 2025-8-26 17:39:27 | 显示全部楼层
和你配置一样,LAN8741A已经升级一段时间了,没发现啥问题。按照CMSIS-Driver_STM32\1.2.0 ETH_MAC_STM32.c配置MPU即可,
回复

使用道具 举报

2

主题

7

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2025-8-27 16:46:02 | 显示全部楼层
本帖最后由 StanDee 于 2025-8-27 17:14 编辑
turnip 发表于 2025-8-26 17:39
和你配置一样,LAN8741A已经升级一段时间了,没发现啥问题。按照CMSIS-Driver_STM32\1.2.0 ETH_MAC_STM32.c ...

按照它的配置还是一样的,目前还没找到原因。有没有可能是哪些debug信息的打印没有关掉?
回复

使用道具 举报

2

主题

7

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2025-8-28 08:29:11 | 显示全部楼层
我可能找到原因了: network 我用的源码自己编译的,没有经过优化,使用.lib库就正常了。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118331
QQ
发表于 2025-8-28 13:53:00 | 显示全部楼层
StanDee 发表于 2025-8-28 08:29
我可能找到原因了: network 我用的源码自己编译的,没有经过优化,使用.lib库就正常了。

可以试试ofast正常不,如果正常,可能确实是优化原因
回复

使用道具 举报

4

主题

134

回帖

146

积分

初级会员

积分
146
发表于 2025-8-28 23:31:29 | 显示全部楼层
StanDee 发表于 2025-8-28 08:29
我可能找到原因了: network 我用的源码自己编译的,没有经过优化,使用.lib库就正常了。

MDK-Middleware: 8.1.0 (含Network库)现在提供的都是源码,没有lib吧。你是不是编译的优化等级不对?还有,Network两个线程的优先级也影响ping结果。
回复

使用道具 举报

2

主题

7

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2025-9-1 11:07:57 | 显示全部楼层
感谢大家的回复,我找到原因了:
网络初始化的时候没有使能ETH_IRQn,导致ping延迟不稳定。
困扰了好久,但是还没搞懂,不使能网络中断居然能正常的ping通。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118331
QQ
发表于 2025-9-2 10:12:43 | 显示全部楼层
StanDee 发表于 2025-9-1 11:07
感谢大家的回复,我找到原因了:
网络初始化的时候没有使能ETH_IRQn,导致ping延迟不稳定。
困扰了好久, ...

谢谢告知最终原因
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-9-26 16:44 , Processed in 0.086216 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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