新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 设计基于NXP LPC2000的次级启动加载程序用于代码升级

设计基于NXP LPC2000的次级启动加载程序用于代码升级

作者:时间:2011-03-27来源:电子产品世界收藏

  摘要:本文介绍了如何设计和实现一个基于 (Secondary Boot Loader),用来对用户代码进行在线升级。

本文引用地址:http://www.eepw.com.cn/article/118092.htm

  关键词: ;;Secondary Boot Loader;IAP;代码升级

  引言

  本文虽然是针对(恩智浦公司)的系列,但使用IAP技术对内部闪存进行编程却适用于几乎所有的 ARM MCU系列,包括Cortex-M0 LPC1100以及Cortex-M3 LPC1300/1700等系列。

  在大多数的LPC2000器件内部,存在着一个被称为“主启动加载程序(Primary Boot Loader)”的固件,它在每次上电或复位时被首先运行。本文所讲的“”实际上是一段用户自己写的代码(烧写在用户闪存区),在执行完主启动加载程序后被执行,提供给用户一个选择,是继续执行当前的应用程序还是对当前应用程序进行更新。

  在应用编程(In Application Programming, IAP)是指在用户应用程序运行时,对内部闪存执行擦除或编程操作,它是对用户代码进行升级的一个关键技术。

  LPC2000 IAP介绍

  扇区(Sector)

  IAP操作都是基于“扇区(Sector)”的,这就意味着即使仅仅需要更新一个字节的代码,也要将该字节所在的整个扇区擦除。因此,用户应该将待更新的代码和其它代码放在不同的扇区,以免误擦除。

  IAP的应用领域

  使用IAP技术,可以对用户代码进行升级,也可以把内部闪存当成类似EEPROM来存储数据。

  当用户应用程序运行时,用户可以对程序的一部分进行更新,就像在线升级病毒库一样,而不必将硬件电路断电甚至将芯片取下来放到专门的编程器上去重新烧写代码。

  当数据存储器使用,可以减少PCB板面积、降低成本。由于作为数据存储的扇区会被擦除,因此不能将这些扇区和存放用户应用程序的扇区重叠。另外,闪存的擦除和编程次数也是有一定限制的,过于频繁的擦除或编程会影响闪存的寿命。对于LPC2000芯片来说,至少可以稳定擦写十万次,数据至少可以保存20年。

  如何使用IAP

  关于IAP的详细说明、各种命令码、返回码和参数格式,可以参考LPC2000系列的用户手册。下面重点介绍一下如何使用IAP。

  使用流程

  图1是使用IAP对闪存进行擦写和编程的基本步骤。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭