• 注册 / 登录
  • 切换到窄版
  • 查看: 2210|回复: 0

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

    [复制链接]

    668

    主题

    682

    帖子

    6599

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    6599
    发表于 2023-4-24 17:36:51 | 显示全部楼层 |阅读模式

    路线栈欢迎您!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    功能介绍

    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 程序中,不会进行软件复位。)

    1.png

    Boot 程序层次结构图

    2.png

    底层驱动实现

    图二灰色区域为跟芯片相关的文件,每个芯片系列都是由下面三个文件构成:
    • 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, 下载次数: 149

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|路丝栈 ( 粤ICP备2021053448号 )

    GMT+8, 2024-11-3 21:07 , Processed in 0.046042 second(s), 21 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表