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

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

3天内不再提示

IAP编程的流程及IAP的应用场所

FPGA那点事儿 来源:CSDN技术社区 作者:Tweedle Dee 2021-08-11 09:27 次阅读

IAP是什么

有时项目上需要远程升级单片机程序,此时需要接触到IAP编程

IAP即为In Application Programming,解释为在应用中编程,用户自己的程序在运行过程中对User Flash的部分区域进行烧写。即是一种对单片机Flash擦写的一种编程方案。

通常情况下,一片STM32单片机的Flash只有一个用户程序,而IAP编程则是将单片机的Flash分成至少两大区域,一部分叫做bootloader区,一部分叫做app用户代码区,还可留出一部分区域为代码备份区。

IAP的应用场所

通常情况下我们给STM32单片机烧录更新程序时是通过SWD、J-link或者通过设置BOOT引脚后,使用串口进行程序下载,这样的方式直接一次性将程序文件下载到单片机的Flash中,比较适合绝大部分的应用。

但是当产品投入实际应用时,封装完成后在后期的使用过程中遇到某些程序上的bug或者是根据客户需求需要增加一些功能的时候,使用传统代码烧录的方法就可能需要拆除封装,而使用IAP编程在bootloader区提前写入与外部通信接口用于升级单片机代码,使得我们不用对已完成包装的产品进行拆除既可以更新代码,这样既节约了成本,也更加方便快捷。

IAP编程的流程

IAP编程将Flash区分成的两个区域,bootloader区和app用户代码区具有截然不同的功能。

bootloader区,主要实现接收程序文件,并将该程序写于特定位置的Flash区域。而这里接收外部程序文件,就需要实时和外部通信了。STM32单片机与外部通信大多是通过自身的串口接收和发送数据,不过STM32单片机的串口可以外接多种通讯接口。

例如422、485、GPRSESP8266等。即我们可以通过串口外接蓝牙模块、WiFi模块或者是其他网络模块,就可以实现远程的文件传送更新单片机程序了。

app用户代码区则是主要实现我们所需要的功能操作,除此之外app用户代码区还需要实时检查代码运行情况,通过判断更新程序的标志位来判断是否需要升级程序。若是需要升级程序则进入bootloader区进行代码更新;若不需要则继续运行功能函数代码即可。

根据运行流程,我们可以总结出简单几条bootloader设计过程中需要注意的地方:

精简、程序尽可能精简。在单片机Flash有限的情况下,bootloader代码占用Flash的空间越小,则APP程序代码就可占用更多,实现更多功能函数。

标志位不受复位的影响。

Bootloader中尽量不使用中断。

编辑:jq

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

    关注

    88

    文章

    3557

    浏览量

    93524
  • IAP
    IAP
    +关注

    关注

    2

    文章

    163

    浏览量

    24197
  • 单片机程序
    +关注

    关注

    1

    文章

    12

    浏览量

    9542

原文标题:STM32代码远程升级之IAP编程

文章出处:【微信号:gh_94c30763133f,微信公众号:FPGA那点事儿】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32代码远程升级之IAP编程

    有时项目上需要远程升级单片机程序,此时需要接触到IAP编程
    发表于 11-17 10:51 3232次阅读

    Bootloader UART IAP流程是怎样的

    IAP是什么?Bootloader功能主要有哪些?Bootloader UART IAP流程是怎样的?
    发表于 12-13 06:57

    IAP编程下的单片机运行流程是怎样的

    IAP是什么?IAP有哪些应用?IAP编程下的单片机运行流程是怎样的?
    发表于 12-14 06:52

    IAP是什么?IAP升级流程是怎样的

    IAP是什么?IAP升级流程是怎样的?IAP应用编程有哪些实例啊?
    发表于 12-14 06:53

    IAP在应用中编程及其应用

    IAP——在应用中编程。即用户的应用代码可以在运行过程中,自行对Flash 存储系统进行修改。IAP 程序是Thumb 代码,位于地址0x7FFF FFF0。在ARM 系统中实现状态转换的指令是“BX Ad
    发表于 07-19 15:01 14次下载

    ISP和IAP的区别详解

    本内容详细解释了ISP和IAP的区别,但两者的操作方式,结果和应用场合有什么区别
    发表于 02-02 15:14 1.4w次阅读

    STM32的IAP技术入门提高

    言简意赅介绍STM32在线编程IAP的技术原理,配合官方源码,能迅速入门,并深入了解。通过该文档,自己也能修改IAP程序,实现各种功能。
    发表于 01-12 10:49 5次下载

    IAP编程模式介绍

    IAP编程模式介绍,好东西,喜欢的朋友可以下载来学习。
    发表于 01-18 17:04 21次下载

    SST单片机IAP编程示例(C语言)

    SST 单片机IAP 编程示例(C 语言),好东西,喜欢的朋友可以下载来学习。
    发表于 01-18 17:04 17次下载

    STM32在应用编程IAP)使用USART

    当发生重置时,程序计数器被设置为执行IAP驱动程序。应该是 检查特定条件的紧凑代码,例如键的组合是 按下。当满足此条件时,IAP驱动代码要么执行一个分支。 更新用户应用程序或直接(通常默认情况下
    发表于 09-12 16:19 8次下载

    STM32 IAP 应用编程几个要点

    STM32 IAP应用编程几个要点
    的头像 发表于 03-08 11:42 9526次阅读

    MCU之IAP升级

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

    AN0001 AT32 IAP 使用 USART

    前言对于AT32 MCU,除了出厂固化的bootloader,用户也可以在应用程序中编写自己的bootloader程序,用于最终产品的固件更新。此功能称为应用程序内编程IAP)。本应用笔记的目的
    发表于 01-14 12:52 4次下载
    AN0001 AT32 <b class='flag-5'>IAP</b> 使用 USART

    Megawin 8051 MCU的IAP(应用程序编程)示例代码

    Megawin 8051 MCU的IAP(应用程序编程)示例代码分享
    发表于 07-01 10:36 3次下载
    Megawin 8051 MCU的<b class='flag-5'>IAP</b>(应用程序<b class='flag-5'>编程</b>)示例代码

    常用的几种IAP升级技术方案是哪些

    关于 IAP 技术,做过 bootloader 的想必很熟悉(IAP全称 In Application Programming,即应用编程),和 ISP(全称 In System
    的头像 发表于 02-15 15:42 1438次阅读
    常用的几种<b class='flag-5'>IAP</b>升级技术方案是哪些