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

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

3天内不再提示

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

安芯 来源:jf_29981791 作者:jf_29981791 2025-12-19 11:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、什么是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升级成功,如下图操作:

审核编辑 黄宇

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

    关注

    463

    文章

    54631

    浏览量

    470909
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19232

    浏览量

    405179
  • IAP
    IAP
    +关注

    关注

    2

    文章

    169

    浏览量

    26227
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于纳芯微实时控制MCU NS800RT5039的IAP固件升级指南(2)

    在上期《无需返厂!基于实时控制MCU NS800RT5039 的 IAP 固件升级指南(理论篇)》中,我们已经详细拆解了 IAP 技术的核心原理、关键概念、方案设计逻辑以及实战中常见问
    的头像 发表于 02-06 09:18 1w次阅读
    基于纳芯微实时控制<b class='flag-5'>MCU</b> NS800RT5039的<b class='flag-5'>IAP</b>固件<b class='flag-5'>升级</b>指南(2)

    基于纳芯微实时控制MCU NS800RT5039的IAP固件升级指南(1)

    设备固件升级需拆回原厂、依赖 J-LINK 等仿真器烧录?这一痛点可通过 IAP(In-Application Programming)升级方案彻底解决。
    的头像 发表于 02-06 09:13 7669次阅读
    基于纳芯微实时控制<b class='flag-5'>MCU</b> NS800RT5039的<b class='flag-5'>IAP</b>固件<b class='flag-5'>升级</b>指南(1)

    AS32A601车规级微控制器的应用探索

    AS32A601将180 MHz RISC-V内核、2 MB 嵌入式 Flash、4 路 CAN-FD以及完整的 ASIL-B 安全机制集成于单颗芯片,为国产车规MCU提供了可批量上车的工程样本。本文结合AEC-Q100、IS
    的头像 发表于 11-18 14:42 1339次阅读

    基于AS32A601MCU芯片的屏幕驱动IC方案的技术研究

    摘要 :在电子技术快速迭代的当下,屏幕驱动IC作为人机交互的关键环节,其技术演进受到广泛关注。本文聚焦于基于国科安芯推出的AS32A601MCU芯片的屏幕驱动IC方案,通过深入剖析
    的头像 发表于 10-31 15:04 663次阅读

    AS32S601MCU芯片在商业卫星电源系统伺服控制器中的性能分析与应用解析

    摘要: 随着商业航天的蓬勃发展,对高可靠、高性能且具备成本效益的MCU(微控制单元)需求日益增长。本文聚焦于国科安芯推出的AS32S601MCU
    的头像 发表于 10-28 21:58 1168次阅读

    AS32S601ZIT2MCU:基于RISC-V架构的抗辐照设计与试验评估

    摘要 随着航天、核能等高辐射环境领域对电子设备可靠性的要求不断提高,抗辐照MCU(微控制单元)在保障系统稳定运行方面的重要性日益凸显。本文聚焦于国科安芯推出的AS32S601ZIT2MCU
    的头像 发表于 09-25 17:15 1267次阅读

    车规级MCU在特种车辆车身控制中的应用研究

    本文聚焦于车规级MCU(微控制单元)在特种车辆车身控制系统中的应用,以国科安芯的车规级MCU芯片AS32A601为例,深入分析其技术特点、功能安全设计及在车身控制中的实际表现。
    的头像 发表于 09-19 17:12 1085次阅读

    CS32A010这个芯片支持IAP吗?

    CS32A010这个芯片支持IAP吗?
    发表于 09-12 10:31

    如何使用ISP功能对Nuvoton 8051 MCU系列进行ISP升级

    如何使用ISP功能对Nuvoton 8051 MCU系列进行ISP升级
    发表于 08-26 06:17

    AT32 MCU如何使用IAP

    已有的通信协议来实现这一过程。上位机软件IAP_Programmer.exe就是基于这样的协议来发送更新数据到MCU的 。 进行IAP升级
    发表于 08-08 17:13

    MCU芯片AS32S601在卫星光纤放大器(EDFA)中的应用探索

    摘要: 本文聚焦于国科安芯推出的AS32S601MCU芯片在卫星光纤放大器(EDFA)中的潜在应用,探讨其技术特性、抗辐射性能及适用性。通过分析其在单粒子效应脉冲激光试验中的表现,结
    的头像 发表于 07-23 17:52 1482次阅读

    AT32 IAP using the USART

    分代码进行更新 如果不需要更新则转到4) 执行更新操作 跳转到第二部分代码执行 图 1. IAP 代码执行流程 在上图所示流程中,MCU 复位后,还是从 0x08000004 地址取出复位中断向量的地址
    发表于 07-11 10:51

    AS32A601在毫米波雷达AEB方案中的技术创新与应用拓展

    摘要: 随着汽车电子技术的不断发展,自动紧急制动(AEB)系统作为提升行车安全的关键技术,其性能和可靠性备受关注。本文深入探讨了国科安芯推出的MCU芯片AS32A601在毫米波雷达AEB方案中
    的头像 发表于 07-04 11:09 906次阅读

    基于AS32A601的高可靠MCU在电动汽车VCU系统中的应用策略

    摘要: 随着电动汽车产业的蓬勃发展,对VCU系统的性能、可靠性和功能安全提出了更高要求。国科安芯推出的AS32A601以其卓越的性能、丰富的功能模块以及出色的安全特性,为电动汽车VCU系统
    的头像 发表于 06-27 16:13 903次阅读

    AS32A601与ASM1042芯片在电力系统自动化监控中的应用效能分析

    摘要: 随着电力系统的持续发展与日益复杂化,自动化监控技术在保障电力系统稳定、高效运行中扮演着关键角色。本文深入剖析了厦门国科安芯科技有限公司的AS32A601芯片与ASM1042芯片组合在电力系统
    的头像 发表于 06-20 17:47 1081次阅读