STM32 IAP学习

发布时间:2024年01月06日

STM32三种烧录方式

ISP:In System Programming(在系统编程)
执行芯片厂商的BootLoader程序进入ISP模式,进入ISP模式后,用户可选择官方提供的烧录通信接口(如:串口),并配合ISP编程工具(如:FlyMCU)对闪存进行烧录。

在这里插入图片描述
ICP:In Circuit Programming(在线编程)
使用IDE并通过JTAG/SWD接口对闪存进行烧录

IAP:In Application Programming(在应用编程)
使用用户的应用程序(也称为BootLoader程序)对闪存进行烧录。该应用程序需要通过一种通信接口(如:IO口\USB…等)对闪存进行烧录(即把APP程序烧录到闪存)。
IAP通常被开发者用作远程升级的手段。

IAP应用原理介绍

在这里插入图片描述
在这里插入图片描述

程序正常运行过程

在这里插入图片描述

  1. 跳转到复位中断服务函数
  2. 跳转到main函数
  3. 发生中断时,会强制跳转到中断向量表
  4. 根据中断源,跳转到对应的中断服务函数
  5. 执行中断服务程序后,回到main函数原来的位置执行

加入IAP后程序运行过程

在这里插入图片描述

  1. 执行复位中断服务函数后,跳转到IAP程序main函数
  2. 执行IAP过程,跳转到APP中断向量表
  3. 跳转到APP的main函数
  4. 发生中断时,会强制跳转到地址为0x08000000的中断向量表
  5. 根据设置的中断向量表偏移量,跳转到APP对应的中断服务函数
  6. 执行中断服务函数后,回到main函数原来的位置执行

APP程序的生成步骤

  1. 设置APP程序的起始地址和存储空间大小
  2. 设置中断向量表偏移量:设置SCB->VTOR的值即可
  3. 设置MDK编译后运行fromelf.exe,生成.bin文件
文章来源:https://blog.csdn.net/Caramel_biscuit/article/details/135401017
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。