物联网技术
登录
直播中
朱虹博
7年用户
230经验值
私信
关注
[问答]
如何构建STM32L452RE的差分升级能力?
开启该帖子的消息推送
移植
在
STM32
L452RE这颗MCU上如何将艾拉比的差分升级功能,移植入STM32L452RE的bootloader中,从而使STM32L452RE能够拥有差分升级的能力。
回帖
(2)
阮薇
2019-9-11 16:12:01
差分升级的原理:
差分算法的基本思想是求解新文件和老文件的差的最优解,并使用压缩算法生成差分包;升级时就可以在老文件的基础上应用差分包进行升级。用形象的图像表达如下:
艾拉比一直致力于差分算法的研究和开发,并且独创了一种对差分中间数据混合打包压缩的技术。目前,艾拉比在该领域已经有三项国家发明专利。
艾拉比算法特点:
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. 自适应确定差分方向。
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等宏一致。
举报
周灿金
2019-9-11 16:12:07
差分包的制作:
在代码移植完成后,我们需要制作差分包,并验证这个差分包是否能够升级成功。我们使用的是艾拉比的在线差分工作来这个差分包
1.在KEIL中配置自动生成制作差分包使用的软件包
abup.bat参数说明:第一个是生成bin工具目录,第二个是压缩工具目录,第三个是编译文件夹,生成压缩包名为:版本号_日期_时间.zip
2.登录到艾拉比的差分工具,将目标版本和源版本两个软件包提交给查分工具,制作生成差分包。
验证差分包:
在差分包制作成功后,我们将差分包通过设备的联网能力下载到设备上,下载完成后软重启设备,进入Bootloader开始升级。
同时我们也可以在串口工具中看到整个Bootloader运行升级程序的过程。
当串口工具中打印出Update Suss后,表明升级成功。通过一系列工作我们也成功的为STM32L452RE构建了差分升级能力。
差分包的制作:
在代码移植完成后,我们需要制作差分包,并验证这个差分包是否能够升级成功。我们使用的是艾拉比的在线差分工作来这个差分包
1.在KEIL中配置自动生成制作差分包使用的软件包
abup.bat参数说明:第一个是生成bin工具目录,第二个是压缩工具目录,第三个是编译文件夹,生成压缩包名为:版本号_日期_时间.zip
2.登录到艾拉比的差分工具,将目标版本和源版本两个软件包提交给查分工具,制作生成差分包。
验证差分包:
在差分包制作成功后,我们将差分包通过设备的联网能力下载到设备上,下载完成后软重启设备,进入Bootloader开始升级。
同时我们也可以在串口工具中看到整个Bootloader运行升级程序的过程。
当串口工具中打印出Update Suss后,表明升级成功。通过一系列工作我们也成功的为STM32L452RE构建了差分升级能力。
举报
更多回帖
rotate(-90deg);
回复
相关问答
移植
如何验证
STM32L452
的低功耗是多少?
2024-03-13
158
STM32L452RE
使用奇偶校验的传输是否与典型的USART不同呢?
2023-01-06
161
esp32是否支持
差
分升级
?
2023-02-20
156
ESP32C3固件太大,OTA时有没有方法做
差
分升级
?
2023-02-15
253
esp32c3同时打开BLE和WIFI的功能,固件都1MByte了,OTA时可以用
差
分升级
吗?
2024-06-18
63
在NUCLEO-
L452RE
上配置
STM32L452RE
时,HSI16时钟速度会有所不同怎么处理?
2022-12-12
113
Bug
STM32L452
CEU6如何使用CubeMX对RTC进行内部唤醒?
2022-12-02
121
请问
STM32L452
CEU3必须要提供4个独立的PWM信号吗?
2023-01-03
203
如何对
STM32L452
RET6的低功耗模式进行调试呢
2021-11-22
808
为
STM32L
476RC编译的FW可以在
STM32L476RE
中进行安全闪存吗
2022-12-20
170
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分