您的位置:首页 > 其它

LPC2478 向量中断控制器(VIC)

2011-07-08 10:30 148 查看

简介:

VIC是处于芯片外设和ARM内核之间的一个模块,对芯片所有外设中断进行管理,决定哪些中断源可以产生中断、产生哪种类型的中断以及中断后执行哪段服务程序。

ARM处理器内核具有两个中断输入:向量中断请求(IRQ)和快速中断请求(FIQ)。向量中断控制器使用32个中断请求输入,可将其编程分配为FIQ或向量IRQ类型。可编程分配机制意味着外设中断的优先级可动态分配和调整。

快速中断请求具有最高优先级。

向量IRQ具有可编程的中断优先级。

特性:

*ARM PrimeCell向量中断控制器

*映射到AHB地址空间以高速访问

*支持32个向量IRQ

*16个可编程的中断优先级

*在每个可编程优先级内的硬件优先级固定

*硬件优先级屏蔽

*任何中断都可分配为FIQ

*软件中断功能

中断源分配表



3130292827262524
符号

I2SI2C2UART3UART2TIMER3TIMER2GPDMASD/MMC
2322212019181716
符号

CAN1&2USBEthernetBODI2C1AD0EINT3EINT2

LCD

15141312111098
符号EINT1EINT0RTCPLLSSP1SPI/SSP0I2C0PWM0&1
76543210
符号UART1UART0TIMER1TIMER0ARMCore1ARMCore0-WDT

寄存器描述

1.控制寄存器

(1)中断选择寄存器 VICIntSelect 将32个中断请求分配为FIQ和IRQ

(31:0) 0: 该位对应的中断请求分配为IRQ

1: 该位对应的中断请求分配为FIQ

VICIntSelect=1<<UART1_Num; //将UART1中断分配为FIQ (UART1_Num为UART1的中断通道号)

(2)中断使能寄存器 VICIntEnable 控制32个中断请求的使能

(3)中断使能清零寄存器 VICIntEnClear 允许软件将中断使能寄存器中的一个或多个位清零

(4)软件中断寄存器 VICSoftInt 该寄存器的内容与32个不同外设功能的中断请求“相或”

写0时该位无效,写1时强制产生与该位相关的中断请求。

(5)软件中断清零寄存器 VICSoftIntClear 允许软件将软件中断寄存器中的一个或多个位清零

写0时该位无效,写1时则软件中断寄存器中对应位被清除。

(6)软件优先级屏蔽寄存器 VICSWPriorityMask 允许在任何组合中屏蔽单个中断优先级

2.参数设置寄存器

(1)向量地址寄存器0-31 VICVectAddr0-31

(2)向量地址寄存器 VICVectAddr

(3)向量优先级寄存器0-31 VICVectPriority0-31

3.状态寄存器

(1)IRQ状态寄存器 VICIRQStatus

(2)FIQ状态寄存器 VICFIQStatus

(3)原始中断状态寄存器 VICRawIntr 该只读寄存器读取所有32个中断请求和软件中断的状态,

0 对应位的中断请求或软件中断未声明

1 对应位的中断请求或软件中断声明

4.其它寄存器

VIC保护使能寄存器 VICProtection

VIC的基本使用方法

**确定该中断分配为FIQ还是IRQ中断

**若分配为FIQ,则进行相关的初始化;若分配为IRQ,再进行相关设置

**清除相应中断标志,并使能相应中断

**编写中断服务程序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: