当前位置: 首页 > news >正文

基于GD32 MCU的IAP差分升级方案

基于 GD32 MCU 的 IAP 差分升级方案

适用于嵌入式单片机的差分升级通用库+详细教程

mcu_bsdiff_upgrade

前言

随着现代通讯技术的发展,智能燃气表、智能水表、安防设备以及车载 ECU 等产品在应用中,都需要通过升级固件来实现软件更新迭代或者漏洞修复。
以往的 IAP 升级使用全量升级方案,bin 文件过大导致升级过程依赖通信的带宽和延迟,差分升级恰好可以解决这个问题(大小约为原包的 10%)。目前差分升级方案已经在智能汽车、智能家居、智能穿戴与智能表计等领域广泛应用。
在这里插入图片描述
本文介绍的差分升级方案,适用于大容量 RAM(最小 22KB,推荐 25KB 以上)的 GD32 MCU 在通讯速率较低或对通信时间要求严格的情况下使用。Demo 中使用 GD32A503V-EVAL 开发板进行演示,展示了一种基于 USART 使用 Bsdiff 算法与 Lzma 算法进行 IAP 差分升级的方法。

IAP 差分升级描述

算法

一般使用开源差分算法bsdiff+lzma

差分升级过程

1、使用旧版本bin文件和新版本bin文件制作差分包

2、将差分包下载到设备内

3、设备使用差分算法还原出新版本bin

4、设备将新版本bin进行crc验证后刷到代码执行区

5、设备重启并以新版本运行

文件结构

除了库包含的文件之外,IAP 差分升级例程包含如下几个文件:
在这里插入图片描述

差分包制作过程

在这里插入图片描述

后面内容参考 https://blog.csdn.net/qq_35333978/article/details/128211763?spm=1001.2014.3001.5501

http://www.lryc.cn/news/578669.html

相关文章:

  • Vue基础(19)_Vue内置指令
  • STM32——代码开发顺序
  • 模型部署与推理--利用python版本onnxruntime模型部署与推理
  • (25.07)解决——ubuntu20.04系统开机黑屏,左上角光标闪烁
  • 杭州来未来科技 Java 实习面经
  • linux 用户态|内核态打印函数调用进程的pid
  • Navicat Premium x TiDB 社区体验活动 | 赢 Navicat 正版授权+限量周边+TiDB 社区积分
  • AI赋能智慧餐饮:Spring Boot+大模型实战指南
  • ChatGPT + GitHub Copilot + Cursor 实战提升编程效率
  • Y-Combinator推导的Golang描述
  • Anthropic 开源 LLM“电路追踪器”:首次可视化语言模型的“推理路径”!
  • WebSocket技术全面解析:从历史到实践
  • 博途多重背景、参数实例
  • 基于Spring Cloud微服务架构的API网关方案对比分析
  • 微信小程序使用秋云ucharts echarts
  • 跨境证券交易系统合规升级白皮书:全链路微秒风控+开源替代,护航7月程序化交易新规落地
  • 【前端】vue工程环境配置
  • nosql项目:基于 Redis 哨兵模式的鲜花预订配送系统
  • Bilibili多语言字幕翻译扩展:基于上下文的实时翻译方案设计
  • Qt 实现Opencv功能模块切换界面功能
  • QT笔记---环境和编译出现的问题
  • 洛谷P1379 八数码难题【A-star】
  • kubernetes pod 调度基础
  • 分布式 ID 生成方案对比:Snowflake、UUID、KSUID 该怎么选?
  • 口重启Spring Boot项目中,通过接口实现应用重启是运维场景中的常见需求。以下是三种主流实现方案及其详细步骤和注意事项:
  • Spring Boot 2 多模块项目中配置文件的加载顺序
  • SAFNet:一种基于CNN的轻量化故障诊断模型
  • 重构企业智能服务:大模型部署背后的战略与落地实践
  • WPF学习笔记(17)样式Style
  • 22页精品PPT | 数据治理平台与数据运营体系建设方案数据治理解决方案