硬汉嵌入式论坛

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

[STM32H7] 请教stm32H750用http传送文件出错的问题

[复制链接]

3

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2022-8-11 17:46:51 | 显示全部楼层 |阅读模式
本帖最后由 sam2022 于 2022-8-11 18:46 编辑

情况描述: stm32h750vbt6 + lwip2.12+freertos+STM32Cube FW_H7 V1.8.0;设备发送http-get请求到电脑浏览器,电脑发送文件到设备,有文件md5校验,但md5校验出错,文件大约300KB就是固件升级了,文件传输成功率很低,偶尔md5校验正确。
stm32H750建立lwip_socket(),然后连接电脑,用num=recv(sock, rcv_buf, BUF_LEN_MX,0)接收http数据 。 通过抓包,电脑发送的数据包是正确的,但用recv()函数接收上来的包就有数据错误;
stm32H750还用到UDP与MQTT都没数据错误问题,就是http传输文件有数据错误。


开了I-cache与D-cache,MPU按照这里配置的:https://st.force.com/community/s ... -LwIP-stack-working
我怀疑是lwip底层接收数据cache没刷新,ehernetif.c中pbuf * low_level_input(struct netif *netif)函数中SCB_InvalidateDCache_by_Addr((uint32_t *)RxBuff->buffer, framelength);已经使用上了,没改善。

请教站长,请教版主,请教各位高手,有遇到这种问题吗? 哪里出问题了? 多谢!感谢!
抓包图:
http-err-2.png








回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
发表于 2022-8-12 09:03:17 | 显示全部楼层
http主要是tcp,也就是说的你的tcp有点问题? 可以测试下tcp文件传输是否有问题,如果没问题,就是你的http get处理有问题了。
回复

使用道具 举报

3

主题

336

回帖

345

积分

高级会员

积分
345
发表于 2022-8-12 10:29:47 | 显示全部楼层
“设备发送get请求到电脑浏览器”???这是不可能的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
发表于 2022-8-12 11:01:01 | 显示全部楼层
glory 发表于 2022-8-12 10:29
“设备发送get请求到电脑浏览器”???这是不可能的。

他应该是搭建了本地web服务器。
回复

使用道具 举报

3

主题

336

回帖

345

积分

高级会员

积分
345
发表于 2022-8-12 12:57:21 | 显示全部楼层
浏览器是不会作为服务器的角色来接收gei请求的,浏览器永远都是web客户端。
回复

使用道具 举报

3

主题

336

回帖

345

积分

高级会员

积分
345
发表于 2022-8-12 12:59:47 | 显示全部楼层
我觉得他的描述有误,应该是电脑发送post请求给设备,post请求的内容是升级的bin文件。
他的内容发生变化是因为浏览器上传文件时采取了分段传输,所以需要在设备端重组。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2022-8-23 19:05:02 | 显示全部楼层
多谢亲们的指导,多谢!

其实做了两种固件升级,本地固件升级与远程固件升级,本地是在750里面做了个webserver,网页http post提交固件文件,接收的成功率也不高;
远程升级是http GET向服务器要固件文件,接收成功率也不高,大约4、5次能md5校验通过一次;

调试的是远程升级固件,经过测试,发现系统只运行http GET一个任务的时候,接收成功率接近100%; 但系统运行了10个任务,还有硬件中断若干,服务器发送文件需要100~200ms,这可能是接收数据出错的原因;
尝试在升级开始把本任务优先级提高到Realtime,接收完毕在恢复原优先级,好像没什么效果;
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 21:09 , Processed in 0.501765 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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