电子说
IAP 即在应用编程,IAP 是用户自己的程序在运行过程中对 Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。
IAP 原理介绍
通常实现 IAP 功能时,需要在设计固件程序时编写两个项目代码,第一个项目程序即 Boot程序不执行正常的功能操作,而只是通过某种通信方式(如 USB、USART)接收程序或数据,执行对第二部分代码的更新;第二个项目程序即 APP 程序用户真正的功能代码。这两部分项目代码同时烧录在 Flash 中,当芯片上电后,首先是第一个项目程序 Boot 开始运行,它主要实现如下功能:
第一部分 Boot 代码可以通过 SWD 或者离线编程器下载到芯片 Flash 内部,首次下载程序时,第二部分 APP 和第一部分 Boot 可以一起烧入芯片内部,以后需要程序更新再通过第一部分 Boot 代码更新。
IAP 运行流程图
下图是 PC 上位机与 MCU 下位机通讯的流程图。(注意:如果在 Boot 程序中收到程序更新帧,则继续待在 Boot 程序中,不会进行软件复位。
Boot 程序层次结构图
底层驱动实现
图二灰色区域为跟芯片相关的文件,每个芯片系列都是由下面三个文件构成:
APP 程序 demo 样例
hc32lxxx_app 文件夹下是跟 Boot 对应的各芯片的应用程序 demo,demo 中集成了各芯片的驱动,方便用户直接在 demo 中编写自己的应用程序。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !