ST意法半导体
登录
直播中
杨杰
7年用户
1086经验值
私信
关注
[问答]
使用STM32H7发送和接收UDP数据包时会出现破损现象怎么解决?
开启该帖子的消息推送
STM32H743
UDP
大家好,
我正在使用
STM32
H7 和新的完全重新设计的以太网驱动程序以及 LWIP 和 FreeRTOS 来发送和接收 UDP 数据包。
问题是前两个数据包在发送时被损坏。我不发送负载中带有零的 UDP 数据包,但第一个发送的数据包充满了零。
我试过延迟以防以太网未正确初始化,但这并没有解决任何问题。
我怀疑内存已损坏,但无法证明任何事情。
有人知道这里的潜在问题是什么吗?
回帖
(1)
李刚
2022-12-27 14:14:23
我在发送之前为通过 UDP 发送的数据包缓冲区添加了干净的数据缓存
这似乎已经解决了这个问题(至少现在是这样)。
现在,发送的初始数据包和所有其他数据包都很好。
我认为问题在于数据已更新并放置在缓存中,而相同的缓冲区未在 DMA 访问的 SRAM 中更新,DMA 采用旧值并发送它们,而不是更新的新值被写入到 SRAM 中。
随后将进行彻底的测试。
SCB_CleanDCache_by_Addr((uint32_t*)(((uint32_t)packetBuffer) & ~(uint32_t)0x1F), packetSize+32);
sendPacket(packetBuffer, packetSize);
我在发送之前为通过 UDP 发送的数据包缓冲区添加了干净的数据缓存
这似乎已经解决了这个问题(至少现在是这样)。
现在,发送的初始数据包和所有其他数据包都很好。
我认为问题在于数据已更新并放置在缓存中,而相同的缓冲区未在 DMA 访问的 SRAM 中更新,DMA 采用旧值并发送它们,而不是更新的新值被写入到 SRAM 中。
随后将进行彻底的测试。
SCB_CleanDCache_by_Addr((uint32_t*)(((uint32_t)packetBuffer) & ~(uint32_t)0x1F), packetSize+32);
sendPacket(packetBuffer, packetSize);
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32H743
UDP
上位机labview
接收
UDP
数据包
收不到求帮助
2017-11-15
14276
如何在没有收到另一个
udp
数据包
的情况下简单地
发送
一个
udp
数据包
?
2023-04-27
246
为什么用DMA
发送
串口
数据
时会出现
数据
覆盖的
现象
呢?
2023-01-10
1094
为什么ESP时不
时会
丢失
UDP
数据包
?
2023-02-28
345
CH582
发送
数据
量大时,
出现
丢
包
现象
的原因是什么?
2022-08-02
443
STM32H7
CAN总线未收到特定的消息怎么解决?
2022-12-30
299
LWIP
UDP
数据包
长度为什么不一样?
2019-10-31
1856
如何强制ESP32-S2向Station和SoftAP接口
发送
UDP
广播
数据包
?
2023-03-02
276
stmf10x+gsm串口通讯
数据包
丢失严重
2019-04-22
1145
GPRS
数据
发送出现
丢
包
现象
2019-04-17
1737
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分