打印
[方案相关]

小华MCU的IAP升级源码+PC工具

[复制链接]
17275|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aoo|  楼主 | 2023-4-25 10:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
功能介绍

IAP 即在应用编程,IAP 是用户自己的程序在运行过程中对 Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。

IAP 原理介绍

通常实现 IAP 功能时,需要在设计固件程序时编写两个项目代码,第一个项目程序即 Boot程序不执行正常的功能操作,而只是通过某种通信方式(如 USB、USART)接收程序或数据,执行对第二部分代码的更新;第二个项目程序即 APP 程序用户真正的功能代码。这两部分项目代码同时烧录在 Flash 中,当芯片上电后,首先是第一个项目程序 Boot 开始运行,它主要实现如下功能:
  • 步骤 1:检查是否需要对第二部 APP 程序代码进行更新
  • 步骤 2:如果不需要更新则转到步骤 4
  • 步骤 3:执行更新操作
  • 步骤 4:跳转到第二部分代码执行

第一部分 Boot 代码可以通过 SWD 或者离线编程器下载到芯片 Flash 内部,首次下载程序时,第二部分 APP 和第一部分 Boot 可以一起烧入芯片内部,以后需要程序更新再通过第一部分 Boot 代码更新。

IAP 运行流程图

下图是 PC 上位机与 MCU 下位机通讯的流程图。(注意:如果在 Boot 程序中收到程序更新帧,则继续待在 Boot 程序中,不会进行软件复位。


Boot 程序层次结构图


底层驱动实现

图二灰色区域为跟芯片相关的文件,每个芯片系列都是由下面三个文件构成:
  • hc32lxxx.h:芯片头文件,比如 L006 的头文件为 hc32l13x.h。
  • system_hc32lxxx.h:针对各芯片中断函数名的重定义。
  • utils.h:boot 中要用到的各芯片底层驱动在此文件中实现。


APP 程序 demo 样例

hc32lxxx_app 文件夹下是跟 Boot 对应的各芯片的应用程序 demo,demo 中集成了各芯片的驱动,方便用户直接在 demo 中编写自己的应用程序。

hc32l13x_iap.zip

1.87 MB

使用特权

评论回复
评论
cooldog123pp 2023-5-18 08:31 回复TA
越来越全了 
沙发
yuchl| | 2023-4-26 08:27 | 只看该作者
感谢分享!

使用特权

评论回复
板凳
yuchl| | 2023-4-26 08:27 | 只看该作者
感谢分享!

使用特权

评论回复
地板
广东无痕| | 2023-4-26 15:08 | 只看该作者
这个就很厉害

使用特权

评论回复
5
zhe_jiang| | 2023-4-27 22:20 | 只看该作者
感谢分享!

使用特权

评论回复
6
cmyldd| | 2023-5-5 08:57 | 只看该作者
感谢分享!

使用特权

评论回复
7
如允欢| | 2023-5-9 09:39 | 只看该作者
感谢分享!

使用特权

评论回复
8
caigang13| | 2023-5-9 19:27 | 只看该作者
现在OTA升级比较常见

使用特权

评论回复
9
Henryko| | 2023-5-12 23:35 | 只看该作者
常用的都是ota升级吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

aoo

10

主题

45

帖子

0

粉丝