datasheet

使用IAP在应用编程轻松更新固件

2018-02-08 11:04:02来源: ZLG致远电子 关键字:IAP

在电子产品出厂前,可以通过离线烧录器,烧录夹具,或者用在线烧录器通过预留的烧录接口轻松将应用代码下载到MCU中。但是,如果产品已售出或不在研发端,又要怎样升级程序呢?今天,这里就给大家介绍通过IAP的在线升级方法。


先来理解两个概念ISP和IAP:


1、ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程;


2、IAP(In-Application Programming) 指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。

IAP编程的实现办法


实现IAP功能,需要在设计产品的时候编写两个程序,第一部分程序是不执行正常的功能的,只是通过某种通信方式(如USB、Uart)接收固件或新的应用程序,执行对第二部分代码的更新,我们称之为Bootloader;第二部分代码是用户的应用代码,实现产品的真正功能。第一部分代码必须事先烧写(通过烧录器或仿真器)到单片机内,第二部分代码可以通过烧录器或仿真器烧录,也可以使用第一部分的IAP功能烧录。当芯片上电后,首先运行第一部分代码,如果不需要更新,则跳转到第二部分代码执行;如果检测到需要更新,则执行更新程序,更新完成后跳转到第二部分代码执行。以STM32为例,如下图:


如上图例子,Bootloader的起始地址存放在0x08000000(也是STM32芯片Flash的起始地址),程序由此执行后,跳转至复位中断入口向量地址,随后跳转到Bootloader的main函数入口, 当检测到需要升级程序,执行更新第二部分应用程序代码到地址为0x08000000 + N的Flash区域,更新完成后,跳转至第二部分应用程序的复位中断向量地址(0x08000004 + N +M), 随后跳转至第二部分应用程序的main函数,在main函数的运行过程中,如果CPU遇到一个中断请求,PC指针强制跳转至Bootloader的中断向量表(上图中0x08000004),而不是第二部分的中断向量表,程序再根据我们设置的中断向量表偏移量,跳转到对应中断源新的中断服务程序中执行,执行完成后返回第二部分应用程序的main函数。


需要注意的地方是:第一部分程序(Bootloader)跳转的地址和第二部分应用程序的起始地址必须要保持一致,相应的中断向量表也要修改,否则程序无法正确运行。


通过IAP在应用编程,在一些产品发布后可以方便地通过预留的通信口(如USB,串口,网络端口或无线传输)对产品中的固件程序进行更新升级。在使用IAP功能之前,芯片必须先通过烧录工具将实现IAP功能的Bootloader烧录到单片机内。如果Bootloader程序被破坏,产品必须返厂才能重新烧写程序,这是很麻烦并且非常耗费时间和金钱的。针对这样的需求,STM32在对Flash区域实行读保护的同时,自动地对用户Flash区的开始4页设置为写保护,这样可以有效地保证IAP程序区域不会被意外地破坏。


ZLG致远电子的P800isp是一款多通道在线脱机烧录器,用户只需将产品的烧录接口预留出来,使用P800isp即可轻松对程序进行一次烧录、二次更新,即使产品Bootloader被破坏,也能轻松解决更新问题


关键字:IAP

编辑:冀凯 引用地址:http://www.eeworld.com.cn/qrs/article_2018020844704.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:继电感业务后,世强宣布代理TT Electronics电阻产品
下一篇:AWorks IoT生态系统

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

网友正在学习IC视频

推荐阅读
全部
IAP

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved