• <tr id='VOqtUc'><strong id='VOqtUc'></strong><small id='VOqtUc'></small><button id='VOqtUc'></button><li id='VOqtUc'><noscript id='VOqtUc'><big id='VOqtUc'></big><dt id='VOqtUc'></dt></noscript></li></tr><ol id='VOqtUc'><option id='VOqtUc'><table id='VOqtUc'><blockquote id='VOqtUc'><tbody id='VOqtUc'></tbody></blockquote></table></option></ol><u id='VOqtUc'></u><kbd id='VOqtUc'><kbd id='VOqtUc'></kbd></kbd>

    <code id='VOqtUc'><strong id='VOqtUc'></strong></code>

    <fieldset id='VOqtUc'></fieldset>
          <span id='VOqtUc'></span>

              <ins id='VOqtUc'></ins>
              <acronym id='VOqtUc'><em id='VOqtUc'></em><td id='VOqtUc'><div id='VOqtUc'></div></td></acronym><address id='VOqtUc'><big id='VOqtUc'><big id='VOqtUc'></big><legend id='VOqtUc'></legend></big></address>

              <i id='VOqtUc'><div id='VOqtUc'><ins id='VOqtUc'></ins></div></i>
              <i id='VOqtUc'></i>
            1. <dl id='VOqtUc'></dl>
              1. <blockquote id='VOqtUc'><q id='VOqtUc'><noscript id='VOqtUc'></noscript><dt id='VOqtUc'></dt></q></blockquote><noframes id='VOqtUc'><i id='VOqtUc'></i>

                技术方案

                首页 >> 方案 >>  技术方案

                STM32L425RE的差分升级能力构建

                2021年06月01日来源:艾拉比发布分享朋友圈
                0

                在上一篇中,我们介绍了基于移远BC28的STM32+NB-IOT的OTA案例分享,以移远BC28+STM32L053C8为例,来演示如何利用艾拉比的差分技术通过NB网络升级STM32的APP固件,详见:【艾拉比】基于移远BC28的STM32+NB-IOT的OTA案例分享


                本案例将展示,在STM32L452RE这颗MCU上如何将艾拉比的差分升级功能,移植入STM32L452RE的bootloader中,从而使STM32L452RE能够拥有差分升级的能力。


                差分升级的原理:


                差分算法的基本思想是求解新文件和老文件的差的最优解,并使用压缩算法生成差分包;升级时就可以在老文件的基础上应用差分包进行升级。用形象的图像表达如下:


                image.png


                艾拉比一直致力于差分算法的研究和开发,并且独创了一种对差分中间数据混合打包压缩的技术。目前,艾拉比在该领域已经有三项国家发明专利。


                艾拉比算法特点:


                1. 自适应确定差分方向。

                2. 对于生成的中间数据使用艾拉比的 “整数数组的混合打包压缩技术”。

                3. 差分包体积小,比公开算法得到的差分包小30~90%。

                4. 升级速度快,升级的速度是公开算法的2至3倍。

                5. 资源消耗少,Lite版算法最低要求RAM 2KB。


                代码移植:


                我们通过STM32CubeMX生成STM32L452RE-Nucelo这个工程代码,然后我们在KEIL中打开这个工程。


                1. C文件移植:


                image.png


                在STM32L452RE-Nucelo工程目录下新建Abup/HAL文件目录,abup_bl_main.c,adups_bl_main.c,adups_bl_flash.c,abup_hal_flash.c,abup_hal_uart.cabup_hal.c


                2. 库文件移植:


                image.png


                1)添加默认库;2)选择库的版本;3)选择默认库脚本。


                3. 头文件路径添加:


                将..\..\Abup\inc,..\..\Abup\Wosun\inc,..\..\Abup\Wosun\inc\lzma, ..\..\Abup\lusun\inc, ..\..\Abup\inc\BL头文件路径加入项目工程头文件路径中。


                image.png


                4. 代码的修改:


                main.c中添加如下代码


                image.png


                5. 代码空间的配置:

                image.png

                image.png


                配置需同ABUP_FLASH_BASE_ADDR、ABUP_BL_SIZE等宏一致。


                差分包的制作:


                在代码移植完成后,我们需要制作差分包,并验证这个差分包是否能够升级成功。我们使用的是艾拉比的在线差分工作来这个差分包


                1.在KEIL中配置自动生成制作差分包使用的软件包


                image.png


                abup.bat参数说明:第一个是生成bin工具目录,第二个是压缩工具目录,第三个是编译文件夹,生成压缩包名为:版本号_日期_时间.zip


                2.登录到艾拉比的差分工具,将目标版本和源版本两个软件包提交给查分工具,制作生成差分包



                image.png


                验证差分包:


                在差分包制作成功后,我们将差分包通过设备的联网能力下载到设备上,下载完成后软重启设备,进入Bootloader开始升级。


                image.png

                image.png


                同时我们也可以在串口工具中看到整个Bootloder运行升级程序的过程。


                image.png


                当串口工具中打印出Update Suss后,表明升级成功。通过一系列工作我们也成功的为STM32L452RE构建了差分升级能力。



                解决方案

                车联网

                物联网

                行业方案

                技术方案

                新闻资讯

                企业资讯

                行业研报

                云平台管理入口

              2. 商务热线

                4008-210-928

              3. 联系邮箱

                contact@abupdate.com

              4. 艾拉比微信公众号