在ARM中实现IAP功能(软件)文献综述

 2021-11-07 10:11

毕业论文课题相关文献综述

1.前言

随着科技与经济的快速发展,嵌入式系统无处不在地出现在人们日常生活之中。然而嵌入式电子产品的升级换代一般都是以硬件的整体更换为代价的,哪怕嵌入式系统的硬件还很完好,由于软件的问题,使得很多产品也逃脱不了被整体换掉的厄运。造成这类问题的主要因为就是在早期设计的嵌入式系统中软件的升级往往是由专业人员利用专业工具才能进行的,普通人们即使拥有新版软件本身也无法操作。最新的软件编程升级理念是IAP(InApplicationProgramming),即在应用程序中编程的功能。由于此升级方式简单便利,甚至可以通过无线编程的方式来实现,因此极大地方便了电子产品的软件升级。另外随着集成电路的快速发展,在单片机产品中32位的ARM系列的单片机从性价比上越来越被大家所认同。

2.研究现状

IAP完全有别于ICP或者ISP技术:ICP(In一CircuitProgramming)技术是通过在线仿真器对单片机进行程序烧写的技术,ISP(In-SystemProgramming)技术则是通过单片机内置的Bootloader程序引导的烧写技术。无论是ICP技术还是ISP技术,都需要有机械性的操作如连接下载线、设置跳线帽等。若产品的电路板已经层层密封在外壳中,要对其进行程序更新无疑困难重重,若产品安装于狭窄空间等难以触及的地方,更是一场灾难。但若进引入了IAP技术,则完全可以避免上述尴尬情况,而且若使用远距离或无线的数据传输方案,甚至可以实现远程编程和无线编程。这绝对是ICP或ISP技术无法做到的。

而STM32F103系列芯片下载程序主要通过JTAG以及ISP这两种方式。其中JTAG需要专门的下载器,这种方式主要用于软件调试。ISP是在系统编程,指的是利用STM32F103中自带的Bootloader程序,通过通信接口擦除和下载用户代码。STM32F103系列芯片中引脚BOOT0和BOOT1置位为1和0时就会进入ISP模式,但下载程序完成后需要将BOOT0和BOOT1都置为0,才能进入正常工作模式。这就使得在下载程序完成后需要设置跳线帽等机械性的操作。而一个嵌入式产品的设计不得不考虑软件部分的更新,前面介绍的两种下载方式都不适合用来做软件更新,也就不适合用在嵌入式产品中。

IAP通过通信接口擦除或下载自己的代码。嵌入式产品需要使用这种简单方便且不需要机械操作的软件升级方式进行程序更新。

3.原理及实现

IAP是用户自己的程序在运行过程中对UserFlash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件进行更新升级。通常用户需要实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信管道(如USB、USART)接收程序或数据,执行对第二部分代码的更新;第二个项目代码才是真正的功能代码。这两部分项目代码都同时烧录在UserFlash中,当芯片上电后,首先是第一个项目代码开始运行,它作如下操作:

1)检查是否需要对第二部分代码进行更新

2)如果不需要更新则转到4)

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。