基于IAP的STM32程序更新技术.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

基于IAP的STM32程序更新技术--第1页

基于IAP的STM32程序更新技术

引言

嵌入式系统的开发最终需要将编译好的代码下载到具体的微控制器芯片上,而

不同厂家的微控制器芯片有不同的下载方式。随着技术的发展和应用需求的更

新,用户程序加载趋向于在线编程的方式,越来越多的芯片公司提供和开放了

用户更新程序的接口与方式,以提高整个系统的可靠性和可维护性。ST公司基

于CortexM3内核的STM32系列产品得到了广泛应用,在许多基于STM32系列产

品的开发过程中不可避免要进行用户程序的加载。本文在介绍IAP技术原理基

础上,详细论述使用该技术在STM32F103ZE芯片上实现用户在线更新功能的方

法,并具体分析其中可能发生异常的原因。

1背景综述

1.1主要程序更新方式

目前,除了直接通过仿真器或烧录器进行程序更新方式外,主要有Bootloader

技术、ISP技术以及IAP技术3种更新程序的方法。

(1)Bootloader技术

引导加载程序,是指系统加电时,控制器将一段存储在外部非易失性存储器中的

代码载入到内部高速存储器单元(如片内RAM)中执行的过程。

(2)ISP(InSystemProgramming)技术

MCU内部自带Bootloader,通过指定的方式激活,通过通信接口下载或擦除用

户代码。需要有外部介入,静态的,在用户代码没有运行时进行下载。

(3)IAP(InApplicationPrograming)技术

单片机内部具有一些可擦写的非易失存储器,如Flash。在微控制器独立运行

时,用户利用自己编写的烧写程序通过通信下载或擦除自己的代码。注意不具

备IAP功能的单片机并不能对Flash的数据进行修改。无需外部介入,动态

的,在用户代码运行时进行下载。

1.2STM32系列简介

STM32系列微控制器基于CortexM3内核,并在其架构上进行了多项改进,包括

在提升性能的同时提高了代码密度的Thumb2指令集,以及大幅度提高中断响应

的紧耦合嵌套向量中断控制器,从而大大提高了处理速度,降低了系统功耗。

使用新内核的Thumb2指令集,设计人员可以把代码容量降低45%,几乎把应用软

基于IAP的STM32程序更新技术--第1页

基于IAP的STM32程序更新技术--第2页

件所需内存容量降低了一半。此外,STM32提供丰富的外围接口,目前广泛应

用到工业用及家用安全设备、消防和暖气通风空调系统等,以及家电、消费电

子、低功耗的可便携式设备等。本文以STM32F103ZE为例来研究及使用IAP技

术。

2IAP技术

2.1IAP技术原理

首先人为设定单片机内部存储区分为两块:其中一块称为Boot区,用于存储

IAP功能程序代码;另外一块称为常态存储区,用于存储除IAP功能外的所有

程序代码。IAP技术指的是,MCU在运行的状态下,通过程序(PC)指针不断读

取需要执行的程序指令。正常情况下,PC指针只在常态存储区内移动,并读取

指令,如图1所示。当用户需要更新或升级程序时,程序指令会将PC指针跳转

至Boot区。这段存储区的指令代码的功能是,通过通信等方式接收用户需要更

新的程序数据,并通过校验确认接收到的程序数据正确后,根据约定的方式写

入常态存储区,如图2所示。当完成用户程序更新后,PC指针再跳回到常态存

储区,开始执行存储在其上的用户程序,这样便实现了IAP功能。

图1通过PC指针读取程序指令图2更新存储区代码

2.2IAP技术关键点

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档