[原创] 关于蓝牙OTA升级部分想请教一下各位

WZH70246   2017-9-6 08:43 楼主
因为自己对这方面了解甚少,所以感觉很吃力。有几个浅显的疑惑望大神解答一下。1、升级烧入板子的固件应该是HEX文件还是Bin文件。
2、对于固件存放位置,我们应该怎么控制和设计。
3、了解到新旧固件需要放置在不同的位置,那么就需要二次引导Bootloader,这个二次引导Bootloader怎么设计。自己没有搞过系统,只是稍微了解过Bootloader。
4、空中传输是否需要自己在传输报文前后加CRC校验码。


下面是官方BlueMicroSystem2的官方指导文件中给出的内存分配。
2017030223.PNG

回复评论 (6)

因为自己对这方面了解甚少,所以感觉很吃力。有几个浅显的疑惑望大神解答一下。
1、升级烧入板子的固件应该是HEX文件还是Bin文件。
OTA升级的话一般是使用BIN文件(干净),HEX文件带些地址信息,最好不要用
2、对于固件存放位置,我们应该怎么控制和设计。
一般OTA升级包括三部分,boot引导区,代码运行区,代码升级区
3、了解到新旧固件需要放置在不同的位置,那么就需要二次引导Bootloader,这个二次引导Bootloader怎么设计。自己没有搞过系统,只是稍微了解过Bootloader。
目前升级的话,主要有两种方法:
1:第一种,每次硬件接受到升级时,进入BOOT区,接受bin文件,将代码烧录到升级区,校验OK,再将代码复制到代码运行区,复位,BOOT跳转在代码运行区,升级OK,代码正常运行
2:第二种,BOOT区中做判断,轮询A和B区,比如第一次代码运行在A区,接受到升级指令,再BOOT区中再升级代码切换到B区,升级代码校验烧录OK,复位跳转到B区运行,反之则再烧录到A区,复位跳转到A区运行
目前这两种方法都是用的很多,还没看到其他的方法,对于你看到的只有BOOT区+一个APP区,那基本是自己玩的,实际项目基本不使用。
4、空中传输是否需要自己在传输报文前后加CRC校验码。
加入CRC校验可以避免升级过程中传输的BIN文件错误,最好是加入减少升级的代码出问题,无线这东西本来就是受干扰比较严重。
其实你贴上来的图就很明显,BOOT区+APP1区+APP2区,主要区别还是BOOT是不是要在APP1和APP2之间跳来跳去。希望对你有帮助,这个东西做过很简单的。我做的产品都是BOOT区+APP1区+APP2区,我同事他们升级代码都是去现场,我都不去现场的,我比较懒,能不出差就不出差。
淘宝:https://viiot.taobao.com/Q群243090717 多年专业物联网行业经验,个人承接各类物联网外包项目
点赞  2017-9-6 11:04
引用: wateras1 发表于 2017-9-6 11:04
因为自己对这方面了解甚少,所以感觉很吃力。有几个浅显的疑惑望大神解答一下。
1、升级烧入板子的固件应 ...

哈哈,,好啊,那常用的工具或者查阅的参考资料有哪些呢?
点赞  2017-9-6 15:49
引用: WZH70246 发表于 2017-9-6 15:49
哈哈,,好啊,那常用的工具或者查阅的参考资料有哪些呢?

你直接查找官方的资料吧,那张图片应该也是官方的资料吧?现在官方都会有相应的解决方案。
淘宝:https://viiot.taobao.com/Q群243090717 多年专业物联网行业经验,个人承接各类物联网外包项目
点赞  2017-9-7 09:26
引用: wateras1 发表于 2017-9-6 11:04 因为自己对这方面了解甚少,所以感觉很吃力。有几个浅显的疑惑望大神解答一下。 1、升级烧入板子的固件应 ...

请教一下,https://bbs.eeworld.com.cn/thread-1090181-1-1.html

基于乐鑫ESP8266的STM32+WIFI的OTA案例分享

这个帖子的差分包,以及加解密应该怎么实现?谢谢~

 

点赞  2020-2-14 11:29
引用: wateras1 发表于 2017-9-6 11:04 因为自己对这方面了解甚少,所以感觉很吃力。有几个浅显的疑惑望大神解答一下。 1、升级烧入板子的固件应 ...

这个不是懒,这是聪明!

点赞  2020-2-14 20:56
引用: wateras1 发表于 2017-9-6 11:04 因为自己对这方面了解甚少,所以感觉很吃力。有几个浅显的疑惑望大神解答一下。 1、升级烧入板子的固件应 ...

OTA.png

ST的另一个文档中有完整的图片。供lz参考。

点赞  2020-2-14 21:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复