查看: 3377|回复: 0

[原创] 【经验分享】关于ble的ota头

[复制链接]

该用户从未签到

715

主题

6374

帖子

0

超级版主

Rank: 8Rank: 8

积分
25233
最后登录
2025-8-20
发表于 2021-9-10 15:58:58 | 显示全部楼层 |阅读模式
最近有好几个小伙伴问,说我用iot toolbox 升级镜像,app有显示一些文件版本信息 otap3.PNG
这些信息哪里来的?参考文档,应该是在otap头里,可是otap头在image的哪里?怎么修改?
otap1.PNG
otap头就是这个,也是ota更新必需的数据,这个头提供了升级镜像的各种基本信息,以及用于client的bootloader启动的信息。
然而小伙伴说,我打开image,对照上面这个数据,就是没找到image的ota头到底在哪里?没有otap的头,但是app还是照样运行。很奇怪。
其实,如果你抓包的话,就会发现在otap协议实际发送第一帧image数据的时候,是有otap头的数据的
ota2.PNG
根据之前的帖子,我们也可以简单分析出,05就是05命令,00就是SeqNumber 事务号,1e就是传输数据的位置,通过BlockStartPosition +SeqNumber * ChunkSize计算实际镜像传输到的位置,之后数据就可以对照otap头解析出来。
那么问题是镜像没有otap头,用iot toolbox上传image,抓包数据里有otap头,这是为什么?答案呼之欲出,自然是iot toolbox主动为你添加的。


因为你的镜像里没有otap头,所以app帮你添上,那么如果我想加这个头该怎么办?
也很简单,使用官方的test tool工具
accc.PNG
首先Browse选择一个镜像,然后你可以修改下面的一些参数,company id等等,然后选save...就可以另存为镜像,扩展名为bleota,可以直接用iot toolbox直接打开,这时候你如果打开镜像就可以看到otap的头了,我这里把版本号最后05改成08了,来区别于iot toolbox自己生成的
ota4.PNG
然后iot toolbox打开后,就可以发现版本号变了


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-8-21 11:40 , Processed in 0.081377 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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