中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

关于蓝牙OTA升级多有不解,恳请前辈赐教! (1...

 王为昌

下载贤集网APP入驻自媒体

关于蓝牙OTA升级多有不解,恳请前辈赐教!
(1)升级烧入板子的固件应该是HEX文件还是Bin文件?
(2)对于固件存放位置,应怎么控制和设计?
(3)新旧固件需要放置在不同的位置,那就需要二次引导Bootloader,二次引导Bootloader怎么设计?
(4)空中传输是否需要自己在传输报文前后加CRC校验码?
下图是官方BlueMicroSystem2的官方指导文件中给出的内存分配。

最新回复
发布回复
因为自己对这方面了解甚少,所以感觉很吃力。有几个浅显的疑惑望大神解答一下。 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区,我同事他们升级代码都是去现场,我都不去现场的,我比较懒,能不出差就不出差。
你直接查找官方的资料吧,那张图片应该也是官方的资料吧?现在官方都会有相应的解决方案。

为您推荐

热门交流