硬汉嵌入式论坛

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

[以太网] MAC发送报文数据一致性问题

[复制链接]
回帖奖励 30 个金币 回复本帖可获得 10 个金币奖励! 每人限 2 次

1

主题

5

回帖

8

积分

新手上路

积分
8
发表于 2025-6-27 11:42:36 | 显示全部楼层 |阅读模式
本帖最后由 WangYiFan 于 2025-6-27 11:49 编辑

  • 在调试STM32H750VET6的以太网部分时,发现ping不通,一步步的排查发现组包的数据,经过MAC发送出来,部分字节被修改。造成ICMP的Checksum一直不对。
  • 经过反复测试,利用软件计算ICMP的sum之后,清空,再由MAC的硬件计算ICMP的sum,两个值是一致的。也就是说MAC外设在进行ICMP的sum计算时,包中的内容还没有被修改。但是发送出来,就有部分几个字节不同。
  • 通过内存查看工具发现,内存中的值与组包时的一致。排除内存被改写问题。
  • 为了避免Dcase的影响,MPU和Dcase都没有启用。具体现象如图:


1.png 2.png
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2025-6-27 13:44:43 | 显示全部楼层
问题成功解决,在配置MAC相关的GPIO时,速率一定不要是GPIO_SPEED_FREQ_LOW,CubeMx生成的是GPIO_SPEED_FREQ_LOW,一直没有怀疑。改成GPIO_SPEED_FREQ_MEDIUM后成功解决。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2025-6-28 09:55:02 | 显示全部楼层

回帖奖励 +10 个金币

WangYiFan 发表于 2025-6-27 13:44
问题成功解决,在配置MAC相关的GPIO时,速率一定不要是GPIO_SPEED_FREQ_LOW,CubeMx生成的是GPIO_SPEED_FRE ...

实际上LOW可以的,我们V7板子是LOW和MEDIUM都行,100M也可以满速
回复

使用道具 举报

4

主题

90

回帖

102

积分

初级会员

积分
102
发表于 2025-6-28 10:42:57 | 显示全部楼层

回帖奖励 +10 个金币

WangYiFan 发表于 2025-6-27 13:44
问题成功解决,在配置MAC相关的GPIO时,速率一定不要是GPIO_SPEED_FREQ_LOW,CubeMx生成的是GPIO_SPEED_FRE ...

CubeMX 的默认配置都是 LOW,用于 SPI 通信等速率较高的情形时也需要手动修改
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 03:43 , Processed in 0.042979 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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