完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在STM32L452RE这颗MCU上如何将艾拉比的差分升级功能,移植入STM32L452RE的bootloader中,从而使STM32L452RE能够拥有差分升级的能力。
|
|
相关推荐
2个回答
|
|
差分升级的原理:
差分算法的基本思想是求解新文件和老文件的差的最优解,并使用压缩算法生成差分包;升级时就可以在老文件的基础上应用差分包进行升级。用形象的图像表达如下: 艾拉比一直致力于差分算法的研究和开发,并且独创了一种对差分中间数据混合打包压缩的技术。目前,艾拉比在该领域已经有三项国家发明专利。 艾拉比算法特点: 1. 自适应确定差分方向。 2. 对于生成的中间数据使用艾拉比的 “整数数组的混合打包压缩技术”。 3. 差分包体积小,比公开算法得到的差分包小30~90%。 4. 升级速度快,升级的速度是公开算法的2至3倍。 5. 资源消耗少,Lite版算法最低要求RAM 2KB。 代码移植: 我们通过STM32CubeMX生成STM32L452RE-Nucelo这个工程代码,然后我们在KEIL中打开这个工程。 1. C文件移植: 在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. 库文件移植: 1)添加默认库;2)选择库的版本;3)选择默认库脚本。 3. 头文件路径添加: 将....Abupinc,....AbupWosuninc,....AbupWosuninclzma, ....Abuplusuninc, ....AbupincBL头文件路径加入项目工程头文件路径中。 4. 代码的修改: main.c中添加如下代码 5. 代码空间的配置: 配置需同ABUP_FLASH_BASE_ADDR、ABUP_BL_SIZE等宏一致。 |
|
|
|
差分包的制作:
在代码移植完成后,我们需要制作差分包,并验证这个差分包是否能够升级成功。我们使用的是艾拉比的在线差分工作来这个差分包 1.在KEIL中配置自动生成制作差分包使用的软件包 abup.bat参数说明:第一个是生成bin工具目录,第二个是压缩工具目录,第三个是编译文件夹,生成压缩包名为:版本号_日期_时间.zip 2.登录到艾拉比的差分工具,将目标版本和源版本两个软件包提交给查分工具,制作生成差分包。 验证差分包: 在差分包制作成功后,我们将差分包通过设备的联网能力下载到设备上,下载完成后软重启设备,进入Bootloader开始升级。 同时我们也可以在串口工具中看到整个Bootloader运行升级程序的过程。 当串口工具中打印出Update Suss后,表明升级成功。通过一系列工作我们也成功的为STM32L452RE构建了差分升级能力。 |
|
|
|
只有小组成员才能发言,加入小组>>
物联网工程师必备:怎么选择不同的无线连接技术,本指南帮你忙!
3072 浏览 1 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】WIFI功能测试
3721 浏览 0 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】Arduino的替代SublimeText3+STino
3234 浏览 0 评论
使用端口扩展器轻松高效地向IIoT端点添加具有成本效益的子节点
3764 浏览 1 评论
20286 浏览 11 评论
模组有时候复位重启后输出日志为“REBOOT_CAUSE_SECURITY_PMU_POWER_ON_RESET”的原因?
408浏览 2评论
397浏览 2评论
2798浏览 1评论
469浏览 1评论
519浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-20 03:55 , Processed in 0.669656 second(s), Total 49, Slave 43 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号