news 2026/4/16 10:56:30

AS32A601型MCU芯片如何进行IAP升级?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AS32A601型MCU芯片如何进行IAP升级?

一、什么是IAP?

IAP(In Application Programming,在应用编程)是一种技术,旨在实现用户应用程序的动态更新,而无需使用专门的编程工具或硬件。IAP升级对于物联网设备、嵌入式系统等非常重要,因为它允许在产品部署后进行功能更新或修复错误。

二、怎么使用IAP升级?

在单片机上电时,系统首先进入引导加载程序(BootLoader)。BootLoader会检测是否需要进行IAP升级。如果条件未被触发,BootLoader将直接跳转到APP应用程序执行。如果条件被触发,BootLoader将执行以下步骤:

1.备份APP应用程序:BootLoader会将旧版本的APP应用程序复制至备份区域,以便在需要时进行还原操作。

2.擦除APP程序区域:随后,BootLoader将清除当前APP程序存储区域,确保该区域完全为空。

3.重新写入APP应用程序:BootLoader将通过外部接口(如串口)接收新版本的APP应用程序数据,并将其完整写入已擦除的APP程序存储区域。

4.更新IAP升级信息:等待成功写入APP应用程序之后,更新IAP升级信息结构体,并将其保存到Flash中,防止丢失。

2.1 分区

我们写的代码最终都会被编译成二进制文件并保存在Flash中,那么我们就需要进一步对内部Falsh划分为几个区域:BootLoader区、APP应用程序区、数据区、备份区。

1.BootLoader区:存放BootLoader程序,负责启动过程和固件更新。

2.APP应用程序区:存放应用程序,即实际的功能代码。

3.数据区:用于存储IAP升级关键信息和安全相关数据

4.备份区:用于保存旧版本的应用程序或作为失败更新的回退选项。

2.2 地址分配

AS32A601片内Flash共包含两个存储器,分别为程序存储器(PFlash)和数据存储器(DFlash)。其中PFlash共2M的Flash大小,我们主要对PFlash进行分区。将它分成四个区,BootLoader区、APP区、数据区、备份区,具体划分如下表:

2.3 APP生成bin文件和上位机

Bootloader的IAR工程文件不用修改。只需要在APP应用程序的IAR工程文件中的Options中修改.icf文件,修改APP区的起始地址为0x0108_0000,控制APP应用程序在 Flash 中的存储布局。

同时,在APP应用程序的IAR工程文件中的Options中勾选生成bin文件:

使用SecureCRT作为上位机,配置串口波特率为115200,Ymodem协议选择1024bytes,选择发送bin文件:

三、BootLoader主要代码

在BootLoader程序中,如果检查到需要IAP升级,使用Ymodem协议接收发送过来的APP应用程序的bin文件。对旧版本的APP应用程序进行备份,将新版本的APP应用程序写入到APP区,最后执行跳转程序到APP区。

3.1地址宏定义

3.2 写入到APP区

使用Ymodem协议接收SecureCRT发送过来的bin文件。接收成功之后,擦除Flash的APP区,将接收到的bin文件数据重新写入到APP区的Flash中。

3.3 跳转到指定地址

我们先简单介绍AS32芯片的启动流程:从 ’_start’ 符号对应的入口开始执行,核心步骤依次为:初始化全局指针 ’gp’、配置栈指针 ’sp’、将data段从ROM拷贝到RAM、清空 ’bss’ 段,以及完成中断相关的基础初始化。所有我们只需要跳转到 ‘_start’ 的地址即可。

新的应用程序被完整写入Flash的指定区域后,Bootloader 将执行最后的跳转操作,启动位于该区域入口地址的新程序,传入的参数为 ‘_start’ 的地址,即APP区的首地址0x0108_0000。最后,跳转之前要关闭全局中断,防止程序跑飞。

跳转之后要在APP应用程序里面开启全局中断,使得能正常接收中断。

3.4 增加相关安全性

升级之前,把旧版本的APP应用程序复制到备份区,方便进行还原操作:


定义相关的IAP升级信息结构体,用于保存跳转状态和升级状态,同时记录接收到的bin文件名称和文件大小:


每次IAP升级跳转之前,需要先从Flash中读取信息结构体,然后进行更新(记录接收到的bin文件名称和文件大小),最后重新写入到Flash中:

三、实验结果

得到APP程序的.bin文件之后,将BootLoader程序下载进单片机,打开SecureCRT,选择波特率,发送Ymodem文件,选择.bin文件,传输文件,此时IAP升级成功,如下图操作:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 10:20:14

Kotaemon支持答案风格迁移,适配不同受众

Kotaemon支持答案风格迁移,适配不同受众在人机交互日益普及的今天,同一个问题如何根据不同用户呈现出恰如其分的回答,正成为智能系统设计中不可忽视的关键挑战。想象一下:一位高中生询问“什么是光合作用”,而同时一位…

作者头像 李华
网站建设 2026/4/16 10:19:24

气体数据手册使用指南:新手也能快速上手的实用宝典

气体数据手册使用指南:新手也能快速上手的实用宝典 【免费下载链接】Matheson气体数据手册下载介绍 Matheson气体数据手册是气体研究领域的权威参考资料,本仓库提供该手册的下载资源。手册全面收录了气体的物理性质、化学性质、应用领域及安全使用指南&a…

作者头像 李华
网站建设 2026/4/16 1:30:17

Kotaemon拼写纠错集成方案推荐

Kotaemon拼写纠错集成方案推荐在教育类App自动批改学生作文、客服系统实时校对用户输入、语音识别后处理纠正转录错误的场景中,一个高效精准的拼写纠错能力已不再是“锦上添花”,而是保障内容质量的核心环节。面对中文错别字、拼音误写、形近混淆乃至中英…

作者头像 李华
网站建设 2026/4/15 13:40:32

智能体迁移学习实战:5步实现跨领域能力快速复用

智能体迁移学习实战:5步实现跨领域能力快速复用 【免费下载链接】hello-agents 📚 《从零开始构建智能体》——从零开始的智能体原理与实践教程 项目地址: https://gitcode.com/datawhalechina/hello-agents 在当前人工智能技术快速发展的背景下&…

作者头像 李华
网站建设 2026/4/16 8:37:25

Kotaemon可用于便利店促销活动咨询系统

音频放大器TPA3116D2在零售环境广播系统中的应用在便利店、连锁超市和无人零售终端日益普及的今天,音频播报系统已不再是简单的“背景音乐播放器”,而是承担着促销信息推送、服务提醒、安全广播乃至顾客动线引导的重要交互媒介。一个清晰、稳定、高保真的…

作者头像 李华
网站建设 2026/4/16 10:20:42

Kotaemon静态资源托管配置技巧

Kotaemon静态资源托管配置技巧在物联网设备快速普及的今天,越来越多的嵌入式系统需要提供本地Web界面用于配置、监控或交互。然而,在资源受限的边缘设备上部署传统Web服务器往往显得“杀鸡用牛刀”——内存占用高、依赖复杂、维护成本大。正是在这样的背…

作者头像 李华