0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

想学习IAP升级源码+PC工具+MCU的看过来

崇殿 来源:jf_83722484 作者:jf_83722484 2023-05-10 09:08 次阅读

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 中编写自己的应用程序。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    451

    文章

    49750

    浏览量

    418318
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16717

    浏览量

    348480
  • FlaSh
    +关注

    关注

    10

    文章

    1602

    浏览量

    147427
  • 源码
    +关注

    关注

    8

    文章

    627

    浏览量

    29017
  • IAP
    IAP
    +关注

    关注

    2

    文章

    163

    浏览量

    24156
收藏 人收藏

    评论

    相关推荐

    芯海通用 MCU 应用笔记: CS32F03x IAP 升级

    本技术文档旨在帮助客户实现 IAP 升级提供一个参考方案和模板。本文档提供基于 UART 升级MCU 参考代码和 PC 端的
    发表于 05-16 10:55

    电子发烧友们看过来,电路元素T恤有奖大调查

    `电子发烧友们看过来,电路元素T恤有奖大调查[url=http://www.hqpcb.com][/url]`
    发表于 06-08 11:18

    招电源研发,,,想创业的请看过来

    如果你有强烈的创业欲望,又不知道如何下手,,,如果是公司技术骨干,在众多的大神中,你感觉永无出头之日,,,如果你不安于目前朝九晚五的工作,想有所突破,请看过来。筹建中的电源制造公司诚邀合作伙伴,职位
    发表于 10-15 10:24

    请问谁有stm8的IAP升级bootloader工程源码吗?

    求stm8的IAP升级bootloader工程源码。串口通过超级终端进行升级。如果能提供,那么分数全给你。
    发表于 10-11 01:12

    【招聘】你复工了吗?有职位需求的看过来

    【招聘】你复工了吗?有职位需求的看过来! 1.数字设计经理 天津/上海 2.数字设计/验证工程师 天津/上海 3.射频/模拟设计:上海/深圳/南京 另:【急招】驻场测试工程师:宁波/无锡 有兴趣请直接发简历到jia_jessica at qq.com 或添加我微信:JessicaJia1;
    发表于 02-10 13:58

    求大佬分享STM32 IAP串口在线升级源码

    求大佬分享STM32 IAP串口在线升级源码
    发表于 12-06 07:53

    【应用笔记】CS32L010 IAP 升级

    本技术文档旨在帮助客户实现IAP 升级提供一个参考方案和模板。本文档提供基于 UART 升级MCU 参考代码和 PC 端的
    发表于 10-09 16:44

    【应用笔记】CS32F03x IAP 升级

    本技术文档旨在帮助客户实现IAP 升级提供一个参考方案和模板。本文档提供基于 UART 升级MCU 参考代码和 PC 端的
    发表于 11-15 14:28

    想学习IAP升级源码+PC工具+MCU看过来

    功能介绍 IAP 即在应用编程,IAP 是用户自己的程序在运行过程中对 Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级I
    发表于 05-08 22:33

    IBM用户看过来 如何清洗小红帽

    IBM用户看过来 如何清洗小红帽   一直以来,IBM ThinkPad笔记本电脑上独特的指点设备——小红点TrackPoint备受ThinkPad用户的喜爱,然而,一个不可避
    发表于 01-26 13:46 581次阅读

    MCUIAP升级

    IAP升级简介IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是在产品发布后可
    发表于 10-25 13:06 18次下载
    <b class='flag-5'>MCU</b>之<b class='flag-5'>IAP</b><b class='flag-5'>升级</b>

    基于STM32F103的IAP串口升级源码

    基于STM32F103的IAP串口升级源码代码,共两个工程,bl+app分享
    发表于 09-23 17:08 40次下载

    @企业主们看过来,用华为云CDN给你的网页加个速

    @企业主们看过来,用华为云CDN给你的网页加个速 前段时间参加秋招的时候,被问到了一个问题,CND是干啥的,什么是CND,面试官问我这个问题的时候,我暗窃喜这不是我的强项吗!!!哈哈哈哈,毕竟作为一
    的头像 发表于 11-30 20:59 381次阅读
    @企业主们<b class='flag-5'>看过来</b>,用华为云CDN给你的网页加个速

    AT32 MCU如何使用USB MSD 进行IAP升级

    AT32 MCU如何使用USB MSD 进行IAP升级
    的头像 发表于 10-27 09:23 985次阅读
    AT32 <b class='flag-5'>MCU</b>如何使用USB MSD 进行<b class='flag-5'>IAP</b><b class='flag-5'>升级</b>?

    AT32 MCU如何使用IAP通过USART实现对固件的在线升级更新

    AT32 MCU如何使用IAP通过USART实现对固件的在线升级更新
    的头像 发表于 09-19 16:51 2028次阅读
    AT32 <b class='flag-5'>MCU</b>如何使用<b class='flag-5'>IAP</b>通过USART实现对固件的在线<b class='flag-5'>升级</b>更新