Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
http_ota
ota在线升级
5
用了四个月的http_ota功能,最近下载新版的升级包,会丢失一部分数据
发布于 2022-03-10 11:00:44 浏览:1713
订阅该版
![image.png](https://oss-club.rt-thread.org/uploads/20220310/1a1f18c9c569c89c19d7ff7f383aeb72.png.webp) 和升级包,即rbl文件的大小有关吗? 实测我在此版本上去http ota老版本升级包是成功的,老版本升级包的大小是305458字节。 而http下载这个306638字节的新版升级包就会缺失几百个字节数据。 我的download分区大小是384KB ![image.png](https://oss-club.rt-thread.org/uploads/20220310/30b09c614329d585f802cdb994299cc9.png) 请问有什么优化意见吗。
查看更多
sync
2022-03-10
这家伙很懒,什么也没写!
经常可以出现的故障,源码又在手,直接断点调试吧
2
个回答
默认排序
按发布时间排序
大话西游2018
2022-03-13
这家伙很懒,什么也没写!
粗略概括:不同大小的升级包文件,有低概率会升级失败 详细描述:大部分的升级包文件,在不同的服务器上每次都可以成功升级,无论是RTThread软件包内的MyWebServe、JAVA同事搭建的各种http服务器, 还是阿里云。 **而我手头恰好有一个306638字节大小的升级包文件**,使用RTThread软件包内的MyWebServer作为局域网服务器,也每次都可以被成功升级。但是使用JAVA同事那边搭建的**某个**服务器,以及公司**某个**阿里云服务器,**每次都不能正常升级**。 ![image.png](https://oss-club.rt-thread.org/uploads/20220313/fdb9ee2ac4fc2d0cb70c4c6215cb24b7.png.webp) **1.验证写入到stm32 flash内的字节包,确实缺失了462字节。** 如何验证缺失了462字节,我们查看一下stm32片内falsh上的数据,来证明缺失了这462个。 上分区表截图: ![image.png](https://oss-club.rt-thread.org/uploads/20220313/4b0c76b91da867ab4a57b7e49d236465.png) 我的bootloader占据了0x08000000-0x08020000之间的部分(不含0x08020000这个地址)。 我的download分区的起始地址: 0x08000000(十六进制)+512*1024(十进制) = 0x080a0000. 我的该升级失败的升级包文件大小是306638字节。 从我们刚才的分析来判断,除去后面的462字节,前面的(306638-462)=306176字节应该是被正确写入了stm32片内flash内的download分区了。 0x080a0000 + 306176 -1 (注意,这里需要减去1) = 0x080E ABFF. 即到这个地址为止(包含0x080E ABFF这个地址),都正确存储了升级包的数据。 从0x080E ABFF+1=0x080EAC00,这个地址开始,就应该没被写入正确的rbl数据了。 查看rbl升级包的二进制, 十进制的306176,对应的十六进制是0x4AC00, 即从rbl升级包的这个偏移地址开始(包含这个地址),数据就没有被写入到stm32的download分区了。 ![image.png](https://oss-club.rt-thread.org/uploads/20220313/56904ab4e77327cda521b880e3ec07bb.png.webp) ![image.png](https://oss-club.rt-thread.org/uploads/20220313/85e927d61a0d7b6f7d97fd731d56e793.png.webp) **2.http下载数据包,这最后一帧数据有没有被正确下载呢? 我们在webclient软件包内添加打印来证实一下。** 关键的函数是int webclient_shard_position_function(struct webclient_session *session, const char *URI, int start, int length, int mem_size) **有必要先大致介绍下http get流程,和代码。** http get流程: ![image.png](https://oss-club.rt-thread.org/uploads/20220313/c37013360901d29abb9e325dc7f1d695.png.webp) ![image.png](https://oss-club.rt-thread.org/uploads/20220313/bad427107592ad27de17c112d6d9a8d1.png.webp) ![image.png](https://oss-club.rt-thread.org/uploads/20220313/d61d05ac37318a612b47139521affc29.png.webp) **代码修改:** ![image.png](https://oss-club.rt-thread.org/uploads/20220313/85dafb0cf8fd8719e5d1b511a69e0b1b.png.webp) ![image.png](https://oss-club.rt-thread.org/uploads/20220313/e1e1a709a770cf9abd5691024117cd82.png.webp) .
撰写答案
登录
注册新账号
关注者
0
被浏览
1.7k
关于作者
大话西游2018
这家伙很懒,什么也没写!
提问
36
回答
40
被采纳
1
关注TA
发私信
相关问题
1
OTA 片上FLASH擦除失败
2
请教一下用私有协议数据包进行OTA的具体的实现流程
3
OTA跳转后基于RTT的app运行失败
4
使用finsh 进行ota成功,线程里开ota失败
5
http_ota 每次下载一半就断线
6
bootloader跳转到app无法正常运行
7
针对腾讯云IOT的软件包OTAbug功能反馈
8
自己写的bootloader无法正常升级基于RTT的程序
9
OTA升级,APP程序下载问题
10
bootloader下载APP后不能正常跳转
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用RC522软件包驱动FM1722
2
常量数据类型和表达式陷阱分享
3
进行i2c驱动移植的经验总结
4
在VSCode中使用clang-format
5
我该如何使用这个微雪的WIFI400 WIFI-LPB-100在rtt里或者我该怎样为它开发驱动
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
289
次被采纳
张世争
809
个答案
175
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部