电子发烧友App

硬声App

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

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

3天内不再提示
电子发烧友网>电子资料下载>嵌入式开发>STM32 在程序中编程方案(IAP)

STM32 在程序中编程方案(IAP)

2017-09-12 | rar | 0.1 MB | 次下载 | 免费

资料介绍

  IAP,全称是“In-Application Programming”,中文解释为“在程序中编程”。IAP 是一种

  对通过微控制器的对外接口(如 USART,IIC,CANUSB以太网接口甚至是无线射频通道)

  对正在运行程序的微控制器进行内部程序的更新的技术(注意这完全有别于 ICP 或者 ISP 技

  术)。ICP(In-Circuit Programming)技术即通过在线仿真器单片机进行程序烧写,而 ISP 技

  术则是通过单片机内置的 bootloader 程序引导的烧写技术。无论是 ICP 技术还是 ISP 技术,

  都需要有机械性的操作如连接下载线,设置跳线帽等。若产品的电路板已经层层密封在外壳

  中,要对其进行程序更新无疑困难重重,若产品安装于狭窄空间等难以触及的地方,更是一

  场灾难。但若进引入了 IAP 技术,则完全可以避免上述尴尬情况,而且若使用远距离或无线

  的数据传输方案,甚至可以实现远程编程和无线编程。这绝对是 ICP 或 ISP 技术无法做到的。

  某种微控制器支持 IAP 技术的首要前提是其必须是基于可重复编程闪存的微控制器。STM32

  微控制器带有可编程的内置闪存,同时 STM32 拥有在数量上和种类上都非常丰富的外设通

  信接口,因此在 STM32 上实现 IAP 技术是完全可行的。

  实现 IAP 技术的核心是一段预先烧写在单片机内部的 IAP 程序。这段程序主要负责与外

  部的上位机软件进行握手同步,然后将通过外设通信接口将来自于上位机软件的程序数据接

  收后写入单片机内部指定的闪存区域,然后再跳转执行新写入的程序,最终就达到了程序更

  新的目的。

  在 STM32 微控制器上实现 IAP 程序之前首先要回顾一下 STM32 的内部闪存组织架构和

  其启动过程。STM32 的内部闪存地址起始于 0x8000000,一般情况下,程序文件就从此地址

  开始写入。此外 STM32 是基于 Cortex-M3 内核的微控制器,其内部通过一张“中断向量表”

  来响应中断,程序启动后,将首先从“中断向量表”取出复位中断向量执行复位中断程序完

  成启动。而这张“中断向量表”的起始地址是 0x8000004,当中断来临,STM32 的内部硬件

  机制亦会自动将 PC 指针定位到“中断向量表”处,并根据中断源取出对应的中断向量执行

  中断服务程序。最后还需要知道关键的一点,通过修改 STM32 工程的链接脚本可以修改程

  序文件写入闪存的起始地址。

  在 STM32 微控制器上实现 IAP 方案,除了常规的串口接收数据以及闪存数据写入等常

  规操作外,还需注意 STM32 的启动过程和中断响应方式。图 1 显示了 STM32 常规的运行流

  程
STM32 在程序中编程方案(IAP)

  对图 1 解读如下:

  1、 STM32 复位后,会从地址为 0x8000004 处取出复位中断向量的地址,并跳转执行复位中

  断服务程序,如图 1 中标号○1 所示。

  2、 复位中断服务程序执行的最终结果是跳转至 C 程序的 main 函数,如图 1 中标号○2 所示,

  而 main 函数应该是一个死循环,是一个永不返回的函数。

  3、 在 main 函数执行的过程中,发生了一个中断请求,此时 STM32 的硬件机制会将 PC 指

  针强制指回中断向量表处,如图 1 中标号○3 所示。

  4、 根据中断源进入相应的中断服务程序,如图 1 中标号○5 所示。

  5、 中断服务程序执行完毕后,程序再度返回至 main 函数中执行,如图 1 中标号○6 所示。

  若在 STM32 中加入了 IAP 程序,则情况会如图 2 所示。

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1TC358743XBG评估板参考手册
  2. 1.36 MB  |  330次下载  |  免费
  3. 2开关电源基础知识
  4. 5.73 MB  |  6次下载  |  免费
  5. 3100W短波放大电路图
  6. 0.05 MB  |  4次下载  |  3 积分
  7. 4嵌入式linux-聊天程序设计
  8. 0.60 MB  |  3次下载  |  免费
  9. 5基于FPGA的光纤通信系统的设计与实现
  10. 0.61 MB  |  2次下载  |  免费
  11. 6基于FPGA的C8051F单片机开发板设计
  12. 0.70 MB  |  2次下载  |  免费
  13. 751单片机窗帘控制器仿真程序
  14. 1.93 MB  |  2次下载  |  免费
  15. 8基于51单片机的RGB调色灯程序仿真
  16. 0.86 MB  |  2次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33564次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21548次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6653次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537796次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420026次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191185次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183278次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费