STM32的IAP计数,BootLoader

来源

三种下载方式:

1、ICP:ST-Link,

2、ISP: FlyMcu,

3、IAP

IAP简介


IAP技术的核心在于BootLoader程序的设计,这段程序预先烧录在单片机中,正常的APP程序可以使用BootLoader程序中的IAP功能写入,也可以两部分代码一起写入,以后需要程序更新时通过IAP进行代码更新。每次板卡上电都会首先执行BootLoader程序,在程序内判断进行固件升级还是跳转到正常的APP程序。

是否进行固件升级的判断可以从硬件和软件两个方面进行考虑。

硬件实现:通过拨码开关、跳线帽等方式设定单片机某一引脚电平状态,程序通过读取引脚电平判断是否需要升级。此种方式需要接触板卡进行操作,当板卡被封闭在外壳中或安装于不便于操作位置时很难实现。
软件实现-1:软件内设定一标志位(变量),通过判断标志位状态判断是否需要升级。该标志位状态掉电不能改变,故需要存储在外部EEPROM或单片机内部FLASH中。若存储在外部EEPROM,则需要增加额外的电路;若存储在单片机内部FLASH,由于FLASH每次写入都需要擦除一整页,会造成资源浪费。
软件实现-2:单片机每次上电首先进入BootLoader程序,在BootLoader中等待一定时间,若上位机软件在该时间段内发起通讯,则停留在BootLoader程序中等待固件升级;若该时间段内无通讯,则跳转到正常的APP程序。该方式每次上电都要等待一定时间,需要考虑是否可以介绍。
……
在IAP过程中,单片机通过特定的通讯方式从上位机软件接收程序数据,并执行FLASH擦写操作对APP部分的程序进行更新。
 

配置

IAP过程中传输的数据文件一般为后缀名为bin的文件。

FLASH空间划分

IAP程序设计

 IAP(BootLoader)编程关键技术

  1. 通信

  2. Flash擦写

  3. APP跳转

通信需要考虑的问题

  1. 选用何种通信方式:串口、CAN、以太网…
  2. 通信协议:数据分发、帧头帧尾校验
  3. 配套上位机

相关推荐

  1. STM32IAP讲解

    2024-03-28 11:20:06       31 阅读
  2. 合并STM32bootloader和app程序hex文件方法

    2024-03-28 11:20:06       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-28 11:20:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-28 11:20:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-28 11:20:06       82 阅读
  4. Python语言-面向对象

    2024-03-28 11:20:06       91 阅读

热门阅读

  1. Linux初学(十)shell脚本

    2024-03-28 11:20:06       44 阅读
  2. LeetCode 304. 二维区域和检索 - 矩阵不可变

    2024-03-28 11:20:06       40 阅读
  3. 抽象类和接口

    2024-03-28 11:20:06       55 阅读
  4. Linux系统账号文件

    2024-03-28 11:20:06       39 阅读
  5. axios配置以及说明

    2024-03-28 11:20:06       39 阅读
  6. Flutter 绘制原理

    2024-03-28 11:20:06       45 阅读