新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于LPC2378的IAP功能的配变监测终端远程设计

基于LPC2378的IAP功能的配变监测终端远程设计

作者:时间:2012-08-21来源:网络收藏

本文采用Philips公司的32位微处理器进行配变的开发,并利用该芯片自带的实现了程序的更新。为了降低通信流量和的存储空间,本文还将LZW压缩算法应用到程序更新中。

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

1 芯片介绍

是一款ARM7TDMI-S的32位处理器。它具有512 KB的片内Flash程序存储器、32 KB的静态RAM(SRAM),以及在系统编程(In-System Programming,ISP)和在应用编程(In-Application Program-ming,)。由于程序对内存需求比较大,所以外扩了一片64 KB的SRAM。

通常,程序的下载可通过3种方式实现:

①采用嵌入式实时操作系统。该方法加大了系统对存储容量的要求,增加了硬件和软件成本。

②采用增加外控制烧录系统的方法。该方法同样增加了系统的复杂度和成本,且降低了系统本身的可靠性。

③采用技术。该方法充分利用芯片本身的,不增加外围器件,是一种最佳的实现方案。

1.1 LPC2378的FIash扇区

IAP命令以“扇区”为单位进行操作,操作时需要指定扇区号。LPC2378的扇区分布如表1所列。IAP、ISP和RealMonitor程序都位于Boot区,Boot区位于地址0x000TE000~0x0007FFFF处。IAP命令不允许对Boot扇区执行写/擦除/运行操作。

LPC2378的扇区分布如表1

1.2 LPC2378的IAP功能

IAP程序是Thumb代码,位于地址0x7ffffff1。IAP功能可用下面的C代码来调用。

定义IAP程序的入口地址:

# define IAP_ENTER_ADR 0x7ffffff1

定义函数类型指针:

Typedef void(* IAP)(uint32[ ],uint32[ ])

IAP iap_entry;

设置函数指针:

Iap_entry=(IAP) IAP_ENTER_ADR;

使用下面的语句来调用IAP:

Iap_entry(command,result);

IAP功能主要通过调用iap_entry()函数来实现。IAP命令和定义的函数如表2所列。

IAP命令和定义的函数如表2

在进行片内Flash修改时,首先需要读取器件的ID和Boot代码命令版本;确认无误后,选择准备编程的扇区;然后擦除扇区并执行扇区查空,将RAM内容复制到Flash中;最后进行RAM内容与Flash的比较,检查是否复制成功。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭