再上一篇:5.2.4 协处理机 14 的时钟和电源管理
上一篇:5.3 系统集成单元
主页
下一篇:5.3.3 实时时钟
再下一篇:5.3.4 操作系统(OS)定时器
文章列表

5.3.2 中断控制器

嵌入式系统(修订本)——Intel XScale 结构与开发 陈章龙 著

PXA250 有22 个中断源。中断控制器只支持单优先级中断,但各中断可设置IRQ 或FIQ, 而FIQ 优先级高于IRQ。

中断控制器可分为两部分;第一部部分分包含中断层蔽寄存器(ICMR)和中断状态寄 存器(ICPR)。已发生中断可由优先级寄存器(ICLR)设置为 IRQ 或 FIQ 分别放于已发生 IRQ(ICIP)和已发生FIQ 寄存器(ICFP)。
第二部分为该中断的源器件的寄存器。第二级中断状态给出了产生中断的其他信息,可 用于中断服务程序。一般来说,多个第二级中断相“或”产生一个第一级中断。
一、中断源
表5-7 列出了22 个一级中断源。
表 5-7 一级中断源

中断源单元

#2 级中断源

位域的描述

IS<31>

实时时钟

1

RTC 等值报警寄存器

IS<30>

实时时钟

1

1Hz 时钟TIC 发生

IS<29>

操作系统定时器

1

OS 定时器等值符合寄存器3

IS<28>

操作系统定时器

1

OS 定时器等值符合寄存器2

IS<27>

操作系统定时器

1

OS 定时器等值符合寄存器1

IS<26>

操作系统定时器

1

OS 定时器等值符合寄存器0

IS<25>

DMA 控制器

16

DMA 通道服务请求

IS<24>

同步穿行端口

3

SSP 服务请求

IS<23>

多媒体卡

9

MMC 状态/错误检测

IS<22>

FFUART

5

x-mit, 接收, FFUART 错误

IS<21>

BTUART

5

x-mit, 接收, BTUART 错误

IS<20>

STUART

4

x-mit, 接收, STUART 错误

IS<19>

ICP

6

x-mit, 接收, ICP 错误

IS<18>

I2C

6

I2C 服务请求

IS<17>

LCD 控制器

15

LCD 控制器服务请求

IS<16>

保留

IS<15>

保留

IS<14>

AC97

10

AC97 中断

IS<13>

I2S

5

I2S 中断

IS<12>

1

PMU (性能监测)中断

IS<11>

USB

7

USB 中断

IS<10>

79

“OR” of GPIO edge detects

80-2

IS<9>

1

GPIO<1> 跳变检测

IS<8>

1

GPIO<0> 跳变检测

IS<7>

保留

IS<6>

保留

IS<5>

保留

IS<4>

保留

IS<3>

保留

IS<2>

保留

IS<1>

保留

IS<0>

保留

所有2 级中断源

179

二、中断控制器寄存器
中断控制器共有六个寄存器,见表5-8
表 5-8 中断控制器寄存器

地址

名称

描述

0x40D0_0000

ICIP

中断控制器IRQ pending 寄存器

0x40D0_0004

ICMR

中断控制器屏蔽寄存器

0x40D0_0008

ICLR

中断控制器级别寄存器

0x40D0_000C

ICFP

中断控制器FIQ pending 寄存器

0x40D0_0010

ICPR

中断控制器pending 寄存器

0x40D0_0014

ICCR

中断控制器控制寄存器

ICIP,ICMR,ICLR,ICFP,ICPR 均为 32 位,它们与 22 个一级中断一一对应(位 16、15 和

位7~0 为保留位)。ICPR 只可读出,它对应位为1 标志发生允许的末处理的中断,它为各个 二级中断的“或”;ICIP 和ICFP 只可读出,它们指出产生IRQ 或FIQ 的一级中断源。ICMR 可读写,它的位为0,屏蔽对应的一级中断;为1 则允许中断。ICLR 可读写,它的位为0, 置对应中断为IRQ 中断;为1 置为FIQ 中断。

ICCR 仅有一位:DIM(位 0)。它为 0,禁止空闲状态的中断屏蔽,即所有允许的中断 可使应用处理机退出空闲状态,为 1 仅允许和非屏蔽(由 ICMR 决定)的中断才能使应用 处理机退出空闲状态。复位时ICCR 为0。

在发生中断后,中断服务程序应向中断源器件的状态位写入1 以清除该中断请求。如该 器件没有其他中断状态位置位,则这可清除ICIP 或ICFP 的相应标志位。