LPC2114_2124_2212_2214-02-中文手册

更新时间:2023-05-19 03:26:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

LPC2114_2124_2212_2214-02-中文手册

LPC2114/2124/2212/2214使用指南

1. 介绍

概述

LPC2114/2124/2212/2214是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-STM CPU的微控制器,并带有128/256 k字节(kB)嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。

由于LPC2114/2124/2212/2214较小的64和144脚封装、极低的功耗、多个32位定时器、4路10位ADC或8路10位ADC(64脚和144脚封装)以及多达9个外部中断使它们特别适用于工业控制、医疗系统、访问控制和POS机。

在64脚的封装中,最多可使用46个GPIO。在144脚的封装中,可使用的GPIO高达76(使用了外部存储器)~112个(单片应用)。由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器、嵌入式软modern以及其它各种类型的应用。 特性

16/32位64/144脚ARM7TDMI-S微控制器。 16K字节静态RAM。

128/256K字节片内Flash程序存储器(在工作温度范围内,片内Flash存储器至少可擦除和写

10,000次)。128位宽度接口/加速器实现高达60MHz的操作频率。 外部8、16或32位总线(144脚封装)。

片内Boot装载程序实现在系统编程(ISP)和在应用中编程(IAP)。Flash编程时间:1ms可编

程512字节,扇区擦除或整片擦除只需400ms。

EmbeddedICE-RT接口使能断点和观察点。当前台任务使用片内RealMonitor软件调试时,中断服

务程序可继续执行。

嵌入式跟踪宏单元(ETM)支持对执行代码进行无干扰的高速实时跟踪。 4/8路(64/144脚封装)10位A/D转换器,转换时间低至2.44us。

2个32位定时器(带4路捕获和4路比较通道)、PWM单元(6路输出)、实时时钟和看门狗。 多个串行接口,包括2个16C550工业标准UART、高速I2C接口(400 kbit/s)和2个SPI接口。 通过片内PLL可实现最大为60MHz的 CPU操作频率。 向量中断控制器。可配置优先级和向量地址。

多达46个(64脚封装)或112个(144脚封装)通用I/O口(可承受5V电压),12个独立外部

中断引脚(EIN和CAP功能)。 片内晶振频率范围:1~30 MHz。 2个低功耗模式:空闲和掉电。

通过外部中断将处理器从掉电模式中唤醒。 可通过个别使能/禁止外部功能来优化功耗。 双电源

-CPU操作电压范围:1.65~1.95 V(1.8 V+/- 8.3%) -I/O操作电压范围:3.0~3.6 V(3.3 V+/- 10%)

LPC2114_2124_2212_2214-02-中文手册

广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 应用

工业控制 医疗设备 访问控制 POS机 通信网关 嵌入式软moderm 一般性应用

器件信息

表1 LPC2114/2124/2212/2214器件信息

器件

管脚数

片内RAM

片内FLASH

10位A/D通道数

4 4 8 8

注 - -

带外部存储器接口 带外部存储器接口

128 kB LPC2214

结构概述

144

16 kB

256 kB

LPC2114/2124/2212/2214包含一个支持仿真的ARM7TDMI-S CPU、与片内存储器控制器接口的ARM7局部总线、与中断控制器接口的AMBA高性能总线(AHB)和连接片内外设功能的VLSI外设总线(VPB,ARM AMBA总线的兼容超集)。LPC2114/2124/2212/2214将ARM7TDMI-S配置为小端(little-endian)字节顺序。

AHB外设分配了2M字节的地址范围,它位于4G字节ARM存储器空间的最顶端。每个AHB外设都分配了16k字节的地址空间。LPC2114/2124/2212/2214的外设功能(中断控制器除外)都连接到VPB总线。AHB到VPB的桥将VPB总线与AHB总线相连。VPB外设也分配了2M字节的地址范围,从3.5GB地址点开始。每个VPB外设在VPB地址空间内都分配了16k字节地址空间。

片内外设与器件管脚的连接由管脚连接模块控制。该模块必须由软件进行控制以符合外设功能与管脚在特定应用中的需求。

ARM7TDMI-S处理器

ARM7TDMI-S是通用的32位微处理器,它具有高性能和低功耗的特性。ARM结构是基于精简指令集计算机(RISC)原理而设计的。指令集和相关的译码机制比复杂指令集计算机要简单得多。这样使用一个小的、廉价的处理器核就可实现很高的指令吞吐量和实时的中断响应。

由于使用了流水线技术,处理和存储系统的所有部分都可连续工作。通常在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。

ARM7TDMI-S处理器使用了一个被称为THUMB的独特结构化策略,它非常适用于那些对存储器有限制或者需要较高代码密度的大批量产品的应用。

在THUMB后面一个关键的概念是“超精简指令集”。基本上,ARM7TDMI-S处理器具有两个指令集: 标准32位ARM指令集 16位THUMB指令集

THUMB指令集的16位指令长度使其可以达到标准ARM代码两倍的密度,却仍然保持ARM的大多数性能上的优势,这些优势是使用16位寄存器的16位处理器所不具备的。因为THUMB代码和ARM代码一样,在相同的32位寄存器上进行操作。

THUMB代码仅为ARM代码规模的65%,但其性能却相当于连接到16位存储器系统的相同ARM处

LPC2114_2124_2212_2214-02-中文手册

理器性能的160%。

关于ARM7TDMI-S处理器的详细内容请参阅ARM官方网站上的ARM7TDMI-S数据手册。

片内FLASH程序存储器

LPC2114/2212集成了一个128K,而LPC2124/2214集成了256K的FLASH存储器系统。该存储器可用作代码和数据的存储。对FLASH存储器的编程可通过几种方法来实现:通过内置的串行JTAG接口,通过在系统编程(ISP)和UART0,或通过在应用编程(IAP)。使用在应用编程的应用程序也可以在应用程序运行时对FLAH进行擦除和/或编程,这样就为数据存储和现场固件的升级都带来了极大的灵活性。

片内静态RAM

LPC2114/2124/2212/2214含有16kB的静态RAM,可用作代码和/或数据的存储。SRAM支持8位、16位和32位访问。

SRAM控制器包含一个回写缓冲区,它用于防止CPU在连续的写操作时停止运行。回写缓冲区总是保存着软件发送到SRAM的最后一个字节。该数据只有在软件请求下一次写操作时才写入SRAM(数据只有在软件执行另外一次写操作时被写入SRAM)。如果发生芯片复位,实际的SRAM内容将不会反映最近一次的写请求(即:在一次“热”芯片复位后,SRAM不会反映最后一次写入的内容)。任何在复位后检查SRAM内容的程序都必须注意这一点。通过对一个单元执行两次相同的写操作可保证复位后数据的写入。或者,也可通过在进入空闲或掉电模式前执行虚写(dummy write)操作来保证最后的数据在复位后被真正写入到SRAM。

LPC2114_2124_2212_2214-02-中文手册

12

当使用测试/调试接口时,共用这些管脚的GPIO/其它功能都不可用。 仅LPC2212/2214

图1 LPC2114/2124/2212/2214方框图

LPC2114/2124/2212/2214寄存器

对LPC2114/2124/2212/2214特殊功能寄存器的访问必须遵循以下方式: 1. 2. 3.

用户不要试图访问任何未经定义的SFR地址。 对任何已定义的SFR的访问必须符合SFR的功能。

标注为“-”、“0”或“1”的SFR位只能以如下方式读或写: - - -

“-”必须写入0,但当读出时不返回任何确定的值(即使向其写入0)。这是 一个保留位,作为将来功能扩展之用。 “0”必须写入0,并且当读出时返回0。 “1”必须写入1,并且当读出时返回1。

下表列举了LPC2114/2124/2212/2214微控制器的所有寄存器,这些寄存器均按照地址进行存储。 对特殊功能寄存器的访问分为读/写、只读或只写几种操作(R/W,RO和WO)。

“复位值”一栏只针对使用的/可访问的位而言,并不包括保留位的内容。某些寄存器的复位值还可能是不确定的,把这些不确定的复位值称为“未定义”。实际应用中不会用到的复位值称为“NA”。某些RTC

LPC2114_2124_2212_2214-02-中文手册

寄存器的值并不受芯片复位的影响。这些复位值用*来表示,如果RTC使能,这些寄存器必须进行软件初始化。

LPC2114/2124/2212/2214的寄存器可以是8、16或32位。对于表2中的8位寄存器,MSB(最高有效位)列的位置用来存放寄存器的位7,LSB(最低有效位)列的位置用来存放寄存器的位0。

如果是16/32位的寄存器,则寄存器位描述的左上角用来存放寄存器的位15/31,右下角用来存放寄存器的位0。

例如:PWMPCR寄存器(地址:0xE001404C)的位“ENA6”是寄存器的位14;该寄存器的位15,8,7和0保留。PWMMCR寄存器(0xE0014014)的位“Stop on MR6”是寄存器的位20;该寄存器的位31和21保留。

未用(保留)位用“-”来表示。访问这些位时必须严格遵循上述方式。 表2 LPC2114/2124/2212/2214寄存器

地址偏移 WD

名称

看门狗模式

寄存器 看门狗定时器

常数寄存器 看门狗喂狗寄

存器 看门狗值

寄存器

TIMER0

T0中断寄存

T0控制寄存

复位

使能

Int.

Int.

Int.

Int.

Int.

Int.

Int. CTR

Int. CTR

CR3

CR2

CR1

CR0

MR3

MR2

MR1

MR0

8位数据(先为0xAA,后为0x55)-

-WDTOF

ET

描述访问

WDRES

复位值

32位数据32位数据计数器位数据T0预分频寄

存器 T0预分频计

数器 T0匹配控制

4个保留位(-)

寄存器

Reset on MR2

T0匹配寄存

器0

T0匹配寄存

器1

T0匹配寄存

器2

T0匹配寄存

器3

Int. on MR2

Stop onMR1

Reset onMR1

Int. on MR1

Stop onMR0

Reset onMR0

Int. on MR0

MR3

MR3

MR3

MR2

Stop on

Reset on

Int. on

Stop on

32位数据32位数据32位数据32位数据32位数据32位数据

LPC2114_2124_2212_2214-02-中文手册

续上表…… 地址偏移

名称

描述访问 T0捕获控制

Int. on

寄存器

4个保留位(-)

Cpt.3

falling

Int. on Cpt.2 falling

T0捕获寄存器0 T0捕获寄存

器1 T0捕获寄存

器2

T0外部匹配

寄存器

外部匹配控制1

外部匹配控制0

Mtch2.

TIMER1

CR3 Int.

CR2 Int.

CR1 Int.

CR0 Int.

MR3 Int.

MR2 Int.

Mtch.1 MR1 Int. CTR

复位

使能 Mtch.0 MR0

Int. CTR

4个保留位(-) Int. on

Int. on

Cpt.2

Cpt.1

rising

falling

rising

Cpt.1

Cpt.1

Cpt.0

falling

rising

Int. on

Int. on

Int. on

Cpt.0

Cpt.0

Int. on

Int. on

rising

Cpt.3

Cpt.3

Cpt.2

Int. on

Int. on

Int. on

复位值

32位数据32位数据32位数据外部匹配控制3

Ext.

外部匹配控制2 Ext.

Ext.

T1中断寄存

器 T1控制寄存

T1计数器位数据T1预分频寄存器 T1预分频计

数器 T1匹配控制

4个保留位(-)

寄存器

Reset onMR2

T1匹配寄存

器0

T1匹配寄存器1 T1匹配寄存

器2

T1匹配寄存

器3

32位数据

32位数据

Int. on MR2

Stop onMR1

Reset onMR1

MR3 Int. on MR1

MR3 Stop onMR0

MR3 Reset on MR0

MR2

Int. on MR0

32位数据32位数据Stop onReset onInt. on Stop on

32位数据

32位数据

LPC2114_2124_2212_2214-02-中文手册

续上表… 地址偏移

名称

描述访问

4个保留位(-)

Int. on

寄存器

Cpt.3

falling

Int. on Cpt.2 falling

T1捕获寄存

器0

T1捕获寄存

器1

T1捕获寄存

器2

T1捕获寄存

器3

T1外部匹配

寄存器

4个保留位(-)

外部匹配控制1

外部匹配控制0

外部匹配控制3 外部 Mtch.3

UART0 0xE000C000

U0RBR (DLAB=0) U0THR (DLAB=0) U0DLL (DLAB=1)

0xE000C004

U0IER (DLAB=0)

U0除数锁存LSB

U0中断使能使能Rx

线状态Int.

U0DLM (DLAB=1)

0xE000C008

U0除数锁存MSB

U0 FIFO使能

使能THRE Int.

使能Rx数据Av.Int.

U0发送保持 U0接收缓冲

外部 Mtch2.

外部匹配控制2 外部 Mtch.1

外部 Mtch.0

Int. on

Int. on

Cpt.2

Cpt.1

rising

falling

rising

Cpt.1

Cpt.1

Cpt.0

falling

rising

Int. on

Int. on

Int. on

Cpt.0

Cpt.0

rising

Int. on

Int. on

Cpt.3

Cpt.3

Cpt.2

Int. on

Int. on

Int. on

复位值

T1捕获控制

32位数据32位数据32位数据32位数据8位数据未定义

8位数据8位数据8位数据中断使能U0 Rx FIFO控制触发FIFO复位

U0线控制设置间

U0线状态FIFO

错误

U0高速缓存

TEMT

奇偶固定

偶选择

奇偶使能

停止位个数

FIFO复位

字长度选择8位数据

LPC2114_2124_2212_2214-02-中文手册

续上表… 地址偏移

名称

描述访问

复位值

UART1

0xE0010000

U1RBR (DLAB=0) U1THR (DLAB=0) U1DLL (DLAB=1)

0xE0010004

U1IER (DLAB=0)

U1除数锁存LSB

U1中断使能使能

Modem状态 Int.

U1DLM (DLAB=1)

0xE0010008

U1除数锁存MSB

使能Rx线状态Int.

使能THRE Int.

使能Rx数据Av.Int.

U1发送保持 U1接收缓冲

8位数据未定义

8位数据8位数据8位数据中断使能U1 Rx FIFO控制触发FIFO复位

FIFO复位

字长度选择U1 FIFO使能

U1线控制设置间

U1 Modem控

U1线状态FIFO

错误

U1高速缓存 U1 Modem状

奇偶固定

偶选择奇偶使能

停止位个数

回送8位数据Delta DCD后沿RIDelta DSR Delta CTS0

PWM

PWM中断

Int.-

PWM定时器

控制

PWM定时器

计数器

-

-

-

MR3 Int.

MR2 Int.

MR1 Int. MR0 Int.

CTR

使能

复位

使能

32位数据PWM预分频位数据PWM预分频

器计数器

32位数据

LPC2114_2124_2212_2214-02-中文手册

续上表… 地址偏移

名称

描述访问

11位保留(-)Reset on

MR6

Int. on MR5 Reset on MR2

PWM匹配寄

存器0

PWM匹配寄

存器1

PWM匹配寄

存器2

PWM匹配寄

存器3

PWM匹配寄

存器4

PWM匹配寄

存器5

PWM匹配寄

存器6

PWM控制

-

- 32位数据

Stop on MR4 Int. on MR2

Reset on MR4 Stop on MR1

Int. on MR4 Reset on MR1

MR6 Stop on MR3 Int. on MR1

Int. on MR6 Reset on MR3 Stop on MR0

Stop on MR5 Int. on MR3 Reset on MR0

Reset on MR5 Stop on MR2 Int. on MR0

复位值

PWM匹配控

32位数据32位数据32位数据32位数据32位数据32位数据PWM锁存使

-

使能PWM M6锁存

I2C

I2C控制设置I2C状态 I2C数据 I2C从地址 SCL占空比寄

存器高半字

SCL占空比寄

存器低半字

I2C控制清零使能PWM M5锁存

使能PWM M4锁存

使能PWM M3锁存

使能PWM M2锁存

使能PWM

使能PWM

M1锁存 M0锁存

5位状态8位数据7位数据16位数据16位数据SPI0

SPI0控制SPI0状态WCOLSPI0数据 SPI0时钟计数

ROVR

MODF

8位数据8位数据

LPC2114_2124_2212_2214-02-中文手册

续上表… 地址偏移

名称

描述访问

复位值

SPI0中断标志SPI1

SPI1控制SPI1状态WCOLSPI1数据 SPI0时钟计数

SPI1中断标志ROVR

MODF

8位数据8位数据RTC

中断位置时钟节拍计数

时钟控制计数器递增中

断寄存器

IM YEAR

IM MON

IM DOY AMR DOY

IM DOW AMR DOW

IM DOM AMR DOM

IM HOURAMR HOUR

IM MIN AMR MIN 星期(3位)

IM SEC AMR SEC

15位数据报警屏蔽AMR

YEAR

完整时间寄存

器0

MON

小时(5位) 分(6位) 秒(6位)

完整时间寄存

器1

年(12位)

月(4位)

日(月份)(5位)

日(年)(12位)完整时间寄存

器2

20位保留(-)

秒寄存器分寄存器小时寄存器日期(月)寄存

6位数据6位数据5位数据5位数据星期寄存器日期(年)寄存

月寄存器年寄存器

7位保留(-)

3位数据9位数据4位数据4位保留(-)位数据6位数据6位数据5位数据秒报警值分报警值小时报警值

LPC2114_2124_2212_2214-02-中文手册

续上表… 地址偏移

名称

描述访问

复位值

日期(月)报警

5位数据星期报警值日期(年)报警

月报警值年报警值 预分频值整数

部分

预分频值小数

部分

7位保留(-)

3位数据9位数据4位数据4位保留位数据3位保留(-)位数据位数据GPIO PORT0

GPIO 0管脚

GPIO 0输出

设置

GPIO 0方向

控制

GPIO 0输出

清零

GPIO PORT1

GPIO 1管脚

GPIO 1输出

设置

GPIO 1方向

控制

GPIO 1输出

清零

GPIO PORT2

0xE0028020 IO2PIN GPIO 2管脚

0xE0028024 IO2SET GPIO 2输出

设置

0xE0028028 IO2DIR GPIO 2方向

控制

0xE002802C IO2CLR GPIO 2输出

清零

GPIO PORT3

0xE0028030 IO3PIN GPIO 3管脚

32位数据32位数据32位数据32位数据32位数据32位数据32位数据32位数据32位数据 RO NA

32位数据 R/W 0

32位数据 R/W 0

32位数据 WO 0

32位数据 RO NA

LPC2114_2124_2212_2214-02-中文手册

续上表… 地址偏移

名称

描述访问

复位值

0xE0028034 IO3SET GPIO 3输出

设置

0xE0028038 IO3DIR GPIO 3方向

控制

0xE002803C IO3CLR GPIO 3输出

清零

管脚连接模块

管脚功能选择

寄存器0

管脚功能选择

寄存器1

0xE002C014

PINSEL2

管脚功能选择寄存器2

32位数据 R/W 0

32位数据 R/W 0

32位数据 WO 0

32位数据32位数据R/W 0 -

24位管脚配置数据(144脚封装)

保留位(64脚封装)

配置数据 -

ADC

ADC控制

8位数据 8位数据

ADC数据

RUN

- 10位数据

系统控制模块

MAM控制2位数据MAM时间控

存储器映射控

PLL控制PLL配置2位数据位数据PLL状态

PLOCK

2位数据3位数据CLKS

位数据位数据MSEL

PLL馈送

8位数据功率控制外设功率控制

PC I2C

19位保留(-) PCAD - PCSPI1

PC

PWM0

UART1

PC UART0

PC TIM1

PCRTC PC TIM0

PCSPI0 -

LPC2114_2124_2212_2214-02-中文手册

续上表…

LPC2114_2124_2212_2214-02-中文手册

续上表… 地址偏移

名称

描述访问

复位值

n

保护使能位数据向量地址位数据默认向量地址位数据Addr

向量地址位数据0

向量地址位数据1

向量地址位数据15

1

向量控制0寄存器 向量控制1寄存器

15

向量控制15寄存器

1位数据

5位数据1位数据

5位数据1位数据

5位数据

2. LPC2114/2124/2212/2214存储器寻址

存储器映射

LPC2114/2124/2212/2214包含几个不同的存储器组,见以下各图。图2所示为复位后从用户角度所看到的整个地址空间映射。中断向量支持地址的重新映射,详见后面的章节。

LPC2114_2124_2212_2214-02-中文手册

4.0 GB

AHB外设

3.75 GB

VPB外设

3.5 GB

0xFFFF FFFF0xF000 00000xE000 0000

3.0 GB

保留给外部存储器

0xC000 0000

2.0 GB

BootBlock

(从片内Flash存储器重新映射)

0x8000 0000

保留给片内存储器

1.0 GB

16 kB片内静态RAM

0x40003FFF0x4000 0000

256 kB片内非易失性存储器 (LPC2212/2214)128 kB片内非易失性存储器

(LPC2114/2124)

0.0 GB

图2 系统存储器映射

0x0004 00000x0003 FFFF0x0002 00000x0001 FFFF0x0000 0000

LPC2114_2124_2212_2214-02-中文手册

4.0 GB

AHB外设

4.0 GB -2 MB

0xFFFF FFFF0xFFE0 0000

0xFFDF FFFF

保留

3.75 GB

0xF000 00000xEFFF FFFF

保留

3.5 GB +2 MB

VPB外设

3.5 GB

0xE020 00000xE01F FFFF0xE000 0000

注:

-AHB部分是128×16kB的范围(共2MB)。 -VPB部分是128×16kB的范围(共2MB)。

图3 外设存储器映射

图3~5显示了从不同角度所观察到的外设地址空间。AHB和VPB外设区域都为2M字节,可各自分配最多128个外设。每个外设空间的规格都为16k字节。这样可简化每个外设的地址译码。所有外设寄存器不管规格大小,都按照字地址进行分配(32位边界)。这样就不再需要使用字节定位的硬件来进行小边界的字节(8位)或半字(16位)访问。不管字还是半字寄存器都是一次性访问。例如,不可能对一个字寄存器的最高字节执行单独的读或写操作。

LPC2114_2124_2212_2214-02-中文手册

向量中断控制器

0xFFFF F000 (4G - 4K)0xFFFF C000

(AHB外设#126)

0xFFFF 8000

(AHB外设#125)

0xFFFF 4000

(AHB外设#124)

0xFFFF 0000

0xFFE1 0000

(AHB外设# 3)

0xFFE0 C000

(AHB外设# 2)

0xFFE0 8000

(AHB外设# 1)

0xFFE0 4000

(AHB外设# 0)

0xFFE0 0000

图4 AHB外设映射

LPC2114_2124_2212_2214-02-中文手册

系统控制模块

(VPB外设 #127)

0xE01F FFFF0xE01F C000

(VPB外设 #14-126)

未使用

10位 A/D(VPB外设 #13)SPI1

(VPB外设 #12)管脚连接模块(VPB外设 #11)

GPIO

(VPB外设 #10)

RTC

(VPB外设 #9)

(VPB外设 #8)

IC

(VPB外设 #7)

未使用(VPB外设 #6)PWM0(VPB外设 #5)UART1(VPB外设 #4)UART0(VPB外设 #3)TIMER1(VPB外设 #2)TIMER0(VPB外设 #1)看门狗定时器(VPB外设 #0)图5 VPB外设映射

0xE003 80000xE003 40000xE003 00000xE002 C0000xE002 80000xE002 40000xE002 00000xE001 C0000xE001 80000xE001 40000xE001 00000xE000 C0000xE000 80000xE000 40000xE000 0000

LPC2114/2124/2212/2214存储器重新映射和BOOT BLOCK

存储器映射概念和操作模式

LPC2114/2124/2212/2214的基本的概念是:每个存储器组在存储器映射中都有一个“物理上的”位置。

它是一个地址范围,该范围内可写入程序代码。每一个存储器空间的容量都永久固定在同一个位置,这样就不需要将代码设计成在不同地址范围内运行。

LPC2114_2124_2212_2214-02-中文手册

Boot Block和SRAM由于ARM7处理器上的中断向量位置(地址0x0000 0000~0x0000 001C,见表3),

空间的一小部分需要重新映射来实现在不同操作模式下对中断的使用,见表4。中断的重新映射通过存储器映射控制特性来实现,详见系统控制模块一节。

表3 ARM异常向量位置 地址 0x0000 0000 0x0000 0004 0x0000 0008 0x0000 000C 0x0000 0010 0x0000 0014 0x0000 0018 0x0000 001C

异常

复位 未定义指令 软件中断

预取指中止(从存储器取指出错) 数据中止(数据访问存储器出错) 保留 * IRQ FIQ

* 在ARM文档中标识为保留,该位置被Boot装载程序用作有效的用户程序关键字。详见Flash存储

器系统和编程的相关内容。

表4 LPC2114/2124/2212/2214存储器映射模式 模式 Boot装载程序

激活

用途

由任何复位硬件激活 在任何复位后都会执行Boot装载程序。Boot Block中断向量映射

到存储器的底部以允许处理异常并在Boot模式

用户Flash模式 由Boot代码软件激活当在存储器中识别了一个有效的用户程序标识并且Boot装载操

作未被执行时,由Boot它位于Flash存储器的底部。

用户RAM模式 由用户程序软件激活 由用户程序激活。中断向量重新映射到静态RAM的底部。 用户外部模式

复位时BOOT1:0不为当一个或两个BOOT管脚在RESET低电平结束时为低时由Boot11时激活

装载程序激活。中断向量从外部存储器映射的底部重新映射。 注:该模式只适用于LPC2212/2214!

存储器的重新映射

为了与将来器件相兼容,整个Boot Block都被映射到片内存储器空间的顶端。在这种方式下,使用较大或较小的Flash模块都不需要改变Boot Block(需要改变Boot装载程序自身的代码)的位置或改变Boot Block中断向量的映射。除了中断向量之外的存储器空间都保持固定的位置。图6所示为使用上述定义的模

式映射的片内存储器。

存储器重新映射的部分允许在不同模式下处理中断,它包括中断向量区(32字节)和额外的32字节,一共是64字节。重新映射的代码位置与地址0x0000 0000~0x0000 003F重叠。一个位于Flash存储器中的典型用户程序可以将整个FIQ处理程序放置在地址0x0000 001C而不需要考虑存储器的边界。包含在SRAM、外部存储器和Boot Block中的向量必须包含跳转到实际中断处理程序的分支或者其它执行跳转到

中断处理程序的转移指令。

选择这种配置有三个原因: 1. 2. 3.

使Flash存储器中的FIQ处理程序不必考虑因为重新映射所导致的存储器边界问题。 用来处理代码空间中段边界仲裁的SRAM和Boot Block向量的使用大大减少。 为超过单字转移指令范围的跳转提供空间来保存常量

重新映射的存储器组,包括Boot Block和中断向量,除了重新映射的地址外,仍然继续出现在它们最

LPC2114_2124_2212_2214-02-中文手册

初的位置。

有关重新映射及其举例详见系统控制模块。

0x8000 0000

0x7FFF FFFF

2.0 GB2.0 GB - 8K

8K byte Boot Block

(从Flash存储器顶部重新映射)

保留给片内存储器

16 kB片内 SRAM

1.0 GB

0x4000 4000

0x4000 3FFF

(SRAM中断向量)

0x4000 00000x3FFF FFFF

保留给片内存储器

(8k字节的 Boot Block重新映射到更高的地址范围)

0x0002 00000x0001 FFFF

128K字节Flash存储器

0.0 GB

有效的中断向量(来自Flash, SRAM或 Boot Block)

0x0000 0000

注:存储器组并不是按比例绘制的。

图6 显示已重新映射和可重新映射区域的低存储器空间

预取指中止和数据中止异常

如果试图访问一个保留地址或未分配区域的地址,LPC2114/2124/2212/2214将产生适当的总线周期中止异常。这些区域包括:

特定的ARM器件所没有的存储器映射区域。对于LPC2114/2124/2212/2214,它们是:

-片内非易失性存储器与片内SRAM之间的地址空间,在图2和图6中标为“保留给片内存储

LPC2114_2124_2212_2214-02-中文手册

器”。对于128kB Flash器件来说,它们是0x0002 0000到0x3FFF FFFF的存储器地址空间;而对于256kB Flash器件来说,它们是0x0004 0000到0x3FFF FFFF的存储器地址空间。 -片内静态RAM与外部存储器之间的地址空间,在图2中标为“保留给片内存储器”。地址范围从0x4000 3FFF到0x7FFF DFFF。

-外部存储器,但由144脚封装中EMC提供的除外。 -AHB和VPB空间的保留区域,见图3。 未分配的AHB外设空间,见图4。 未分配的VPB外设空间,见图5。

对于这些区域,对数据的访问和对指令的取指都会产生异常。此外,对AHB或PVB外设地址执行任何指令取指都会导致产生预取指中止异常。

在现有的VPB外设地址空间内,对未定义地址的访问不会产生数据中止异常。每个外设内的地址译码被限制为外设内部需要判别的已定义寄存器。例如,对地址0xE000D000(UART0空间内一个未定义的地址)的访问可能导致对定义在地址0xE000C000处的寄存器进行访问。一个外设内的这样一种地址混淆在LPC2114/2124/2212/2214文档中没有定义,并且它也不是一个被LPC2114/2124/2212/2214支持的特性。

需要注意的是,只有在试图执行从非法地址取指的指令时,ARM才会将预取指中止标志与相关的指令(没有意义的指令)一起保存到流水线并对中止进行处理。当代码在非常靠近存储器边界执行时,这样防止了由预取指所导致的意外中止。

3. 外部存储器控制器(EMC)

只有LPC2212和LPC2214含有该模块。

特性

支持静态存储器映射器件,包括RAM、ROM、Flash、Burst ROM和一些外部I/O器件。 在未锁定存储器子系统中可执行异步页模式读操作。 可对突发模式ROM器件进行异步突发模式读访问。

可对高达4个存储器组进行单独配置,每个存储器组可包含多达16M字节。 总线往返(空闲)周期(1~16)可编程。

可对静态RAM器件的读和写WAIT状态(高达32个)进行编程。 可编程Burst ROM器件的初始和连续读WAIT状态。 可编程写保护。 可编程突发模式的操作。

。 可编程外部数据总线宽度(8、16或32位) 可编程读字节定位使能控制。

概述

外部静态存储器控制器是一个AMBA AHB从机模块,它为AMBA AHB系统总线和外部(片外)存储器器件提供了一个接口。该模块可同时支持多达4个单独配置的存储器组。每个存储器组都支持SRAM、ROM、Flash EPROM、Burst ROM存储器或一些外部I/O器件。

每个存储器组的总线宽度为8、16或32位。

只有LPC2212和LPC2214含有该模块。144脚封装器件的管脚地址输出线是A[23:0],其中地址位A[25:24]用于4个存储器组的译码。4个存储器组的有效区域位于外部存储器的起始部分,如图2所示,但

在BOOT[1:0]的状态控制下,Bank 0可用于初始引导。

本文来源:https://www.bwwdw.com/article/5an4.html

Top