收藏 分销(赏)

第8章 集成可编程中断控制器.doc

上传人:s4****5z 文档编号:8656941 上传时间:2025-02-24 格式:DOC 页数:32 大小:812KB 下载积分:10 金币
下载 相关 举报
第8章 集成可编程中断控制器.doc_第1页
第1页 / 共32页
第8章 集成可编程中断控制器.doc_第2页
第2页 / 共32页


点击查看更多>>
资源描述
第八章 集成可编程中断控制器(IPIC) 本章介绍集成可编程中断控制器(IPIC),包括外部信号的定义及其功能。此外,本章还介绍配置、控制和状态寄存器。注意,本参考手册的每一章都介绍了一个部件的特定的具体的初始化过程。 8.1 绪论 本节介绍IPIC中断协议、IPIC单元控制的不同类型的中断源、以及IPIC寄存器及其编程指南。编程模型与MPC8260的中断控制相似。中断控制器提供中断管理,负责接收来自不同中断源(内部的和外部的)的硬件产生的中断。它还将中断分为不同的优先级,并将中断交付给CPU,由CPU服务。IPIC区分来自下列控制单元的中断的优先级并管理这些中断: l DDR存贮器控制器(DDR) l 本地总线内存控制器(LBC) l PCI1和PCI2 l 四通道DMA控制器(DMA) l 消息单元(MU) l 双三态Ethernet控制器(TSEC1和TSEC2) l DUART通信模块(DUART) l USB 2.0控制器(USB DR 和USB MPH) l 安全引擎(SEC) l 系统总线仲裁器(SBA) l 周期间隔定时器(PIT) l 实时时钟定时器(RTC ALR和RTC SEC) l 八个全局定时器(GTM1-GTM8) l 软件看门狗定时器(WDT) l I2C控制器(I2C1和I2C2) l SPI控制器(SPI) l 电源管理控制器(PMC) l 两个通用I/O控制器(GPIO1和GPIO2) l 外部引脚(/IRQ[0:7]) IPIC单元控制的中断源引起处理器核内部的异常。内部中断(/int)信号是从IPIC到核的主要中断输出信号,它引起常规中断异常。/cint是从IPIC到处理器核的紧急中断输出信号,它引起紧急中断异常。/smi信号是从IPIC到处理器核的系统管理中断输出信号,它引起系统管理中断异常。机器检查异常由IPIC产生的内部/mcp引起,通知主处理器出现错误、外部/IRQ0机器检查请求有效(在SEMSR[SIRQ0]=1时允许)、以及其他情况。 表8-1列出了各种功能部件和设备的外部信号与IPIC单元的关系。 IPIC接收来自下列两个地方的中断请求信号: l 该集成设备的外部 l 该集成设备的内部 该单元从当前所有的中断中选择最高优先级的中断,并将它交给内部处理器核,或片外,在外部服务中断。 IPIC还管理内部不可屏蔽机器检查处理器(/mcp)信号和片外中断源产生的中断(/IRQ[0:7])。 IPIC的中断发送程序监控内部配置寄存器的输出。若某个收到的中断信号的优先级最高,IPIC就将某个中断未决寄存器中的对应位置位——系统内部中断未决寄存器(SIPNR)/系统外部中断未决寄存器(SEPNR)。如果该中断未被屏蔽,IPIC就宣告/int信号有效,向处理器指示中断请求。若处理器正在运行特定/int、/cint或/smi的中断处理程序代码,则处理器必须通过显式(用软件)读取相应的中断向量寄存器(SIVCR、SCVCR或SMVCR),将外部中断处理程序向量化。读取后,IPIC单元将向量(与中断源相关)返回给中断处理程序例程。此外,处理程序可以将不同分支的中断处理向量化 图8-1 中断源结构图 IPIC可以接收来自下列不同中断域的中断: l 8个外部——片外信号(/IRQ[0:7]) l 35个内部——片上中断信号。中断源为DDR MEMC、LB、PCI1、PCI2、DMA、MU、TSEC1、TSEC2、DUART、USB、SEC、系统总线仲裁器、PIT、RTC、GTM、I2C1、I2C2、SPI、GPIO1、GPIO2和PMC l 1个外部和5个内部——片上/mcp中断信号。中断源为/IRQ0、软件看门狗定时器(WDT)、PCI1、PCI2、MU和系统总线仲裁器(SBA) 中断控制器提供了屏蔽每个中断源的能力,还可以屏蔽GPIO、SEC或SBA外围事件中的多个事件。 当收到一个内部或外部中断时,IPIC检查其配置寄存器,确定应将中断发送到片外(到外部/INTA),还是作为正常外部中断由处理器核服务(通过/int信号)。第三种方法是,如果进来的中断已经被配置为紧急中断或系统管理中断,IPIC就向核宣告/cint或/smi有效,完成该中断的处理。到核的/cint或/smi信号有效会把中断分别作为紧急或系统管理中断来服务。 8.2 特性 IPIC单元实现了下列特性: l 与MPC8260中断控制器在功能和编程方面兼容 l 支持8个外部和35个内部离散向量化中断源 l 支持1外部个和5个内部/mcp中断源 l 可编程最高优先级请求(可被编程,以支持紧急(/cint)或系统管理(/smi)中断) l 两个可编程优先级混合组,每组4个片上和4个外部中断信号,两种优先级方案:分组的(grouped)和分散的(spread) l 两个可编程优先级内部组,每组8个片上中断信号,两种优先级方案:分组的(grouped)和分散的(spread) l 每组可以安排两个最高优先级的中断,以支持紧急或系统管理中断类型 l 外部和内部中断可以定向到主处理器 l 每个中断源的向量号唯一 8.3 操作模式 IPIC单元可以运行在核允许模式或核禁止模式。 8.3.1 核允许模式 在核允许模式中,所有的内部中断(包括来自PCI1和PCI2部件的那些中断)都被送到IPIC,或源自IPIC,将中断发送给PowerPC核。DMA控制器可以随意(根据DMA寄存器的设计)将其中断通过INTA信号送给PCI主机。 在该模式中,IPIC搜集所有的机器检查中断,并将它们发送给PowerPC核。如果设备作为PCI主机操作,那么应将其他PCI代理(agent)的中断连接到实现(设备)的/IRQ信号,并将它们当作正常外部中断对待(发送给核)。 8.3.2 核禁止模式 在核禁止模式中,所有的内部中断(包括来自PCI1和PCI2部件的那些中断)都被送到IPIC,或源自IPIC,然后将中断通过/INTA信号发送给PCI主机的CPU。注意,核中断信号被屏蔽。在该模式中,用户应仅使用/int输出中断类型(不能使用/cint或/smi输出中断类型)读取更新了的SIVCR。(参见8.5.7节“系统内部中断控制寄存器(SICNR)”和8.5.12节“系统外部中断控制寄存器(SECNR)”。) 在该模式中,在/INTA上或/MCP_OUT上驱动的机器检查中断是电平敏感中断。SERCR[MCPR](见8.5.15节“系统错误控制寄存器(SERCR)”)控制使用哪个外部信号。 8.4 外部信号说明 下面几节概述并详细说明了IPIC信号。 8.4.1 概述 该设备有8个不同的外部中断请求输入信号(/IRQ[0:7])和一个中断请求输出信号(/INTA)。IPIC接口信号在表8-1中定义。 表8-1 IPIC信号属性 名字 端口 功能 I/O 复位 需要上拉 /IRQ[0:7] /IRQ[0:7] 外部中断 I - 是 /INTA /INTA 中断请求输出 O Z 是 /MCP_OUT /MCP_OUT 中断请求输出 O Z 是 8.4.2 详细信号说明 表8-2提供了外部IPIC信号的详细说明 表8-2 IPIC外部——详细信号说明 信号 I/O 说明 /IRQ[0:7] I 中断请求0-7。每一个信号的检测(电平或边沿)都是可编程的。所有这些输入都可以被完全异步驱动。 状态含义 有效——当外部中断请求信号有效时(根据规定的极性),IPIC单元检查优先级,有条件地将中断传给处理器。 无效——没有来自那个源的中断。 时序 有效——可以被完全异步地宣告所有输入有效。 无效——规定为电平敏感的中断在被服务之前必须保持有效。 /INTA OD 中断请求输出。低有效,开漏极。若将IPIC设置为核禁止模式,则该输出反映的是片上中断源产生的原始中断。细节参见8.3节“操作模式”。 状态含义 有效——当前正在向外部系统报告至少一个中断。 无效——指示当前没有发向/IRQ_OUT的中断源。 时序 因为外部中断是异步的,不考虑系统时钟,所以/IRQ_OUT的有效和无效可以异步出现,与中断源无关。这里给出的所有时序都是近似的。 有效——内部中断源:中断发生后的3个系统总线时钟周期。外部中断源:中断发生后的4个周期。 无效——中断源无效后,后面跟下列延迟:内部中断源:3个系统总线时钟周期。外部中断源: 4个周期。 /MCP_OUT OD 不可屏蔽中断请求(机器检查)输出。低有效,开漏极。若将IPIC设置为核禁止模式,则该输出反映的是片上中断源产生的/mcp中断。细节参见8.3节“操作模式”。 状态含义 有效——当前正在向外部系统报告至少一个机器检查中断。 无效——指示当前没有发向/MCP_OUT的中断源。 时序 因为外部中断是异步的,不考虑系统时钟,所以/MCP_OUT的有效和无效可以异步出现,与中断源无关。这里给出的所有定时时间都是近似的。 有效——内部中断源:中断发生后的2个系统总线时钟周期。外部中断源:中断发生后的4个周期。 无效——中断源无效后,后面跟下列延迟:内部中断源:2个系统总线时钟周期。外部中断源: 4个周期。 8.5 内存映射/寄存器定义 IPIC可编程寄存器映射占用256个字节的内存空间。读取内存映射的未定义部分返回全零,写入无效。 所有的IPIC寄存器都为32位宽,位于32位地址边界。软件可以对所有IPIC寄存器执行字节、半字或字访问。本章使用的所有地址都是距IPIC基址的偏移量,如第二章“内存映射”所定义的。 表8-3列出了IPIC单元的内存映射。 表8-3 IPIC寄存器地址映射 偏移量 寄存器 访问 复位值 节/页 0x00 系统全局中断配置寄存器(SICFR) R/W 0x0000_0000 8.5.1/8-8 (需调整) 0x04 系统常规中断向量寄存器(SIVCR) R 0x0000_0000 8.5.2/8-8 (需调整) 0x08 系统内部中断未决寄存器(SIPNR_H) R 0x0000_0000 8.5.3/8-8 0x0C 系统内部中断未决寄存器(SIPNR_L) R 0x0000_0000 8.5.3/8-8 0x10 系统内部中断组A优先级寄存器(SIPRR_A) R/W 0x0530_9770 8.5.4/8-8 0x14 保留 - - - 0x18 保留 - - 8.5.5/8-8 0x1C 系统内部中断组D优先级寄存器(SIPRR_D) R/W 0x0530_9770 8.5.5/8-8 0x20 系统内部中断屏蔽寄存器(SIMSR_H) R/W 0x0000_0000 8.5.6/8-8 0x24 系统内部中断屏蔽寄存器(SIMSR_L) R/W 0x0000_0000 8.5.6/8-8 0x28 系统内部中断控制寄存器(SICNR) R/W 0x0000_0000 8.5.7/8-8 0x2C 系统外部中断未决寄存器(SEPNR) R/W 特殊 8.5.8/8-8 0x30 系统混合中断组A优先级寄存器(SMPRR_A) R/W 0x0530_9770 8.5.9/8-8 0x34 系统混合中断组B优先级寄存器(SMPRR_B) R/W 0x0530_9770 8.5.10/8-8 0x38 系统外部中断屏蔽寄存器(SEMSR) R/W 0x0000_0000 8.5.11/8-8 0x3C 系统外部中断控制寄存器(SECNR) R/W 0x0000_0000 8.5.12/8-8 0x40 系统错误状态寄存器(SERSR) R/W 0x0000_0000 8.5.13/8-8 0x44 系统错误屏蔽寄存器(SERMR) R/W 0xFF00_0000 8.5.14/8-8 0x40 系统错误控制寄存器(SERCR) R/W 0x0000_0000 8.5.15/8-8 0x4C-0x4F 保留 - - - 0x50 系统内部中断强制寄存器(SIFCR_H) R/W 0x0000_0000 8.5.16/8-8 0x54 系统内部中断强制寄存器(SIFCR_L) R/W 0x0000_0000 8.5.16/8-8 0x58 系统外部中断强制寄存器(SEFCR) R/W 0x0000_0000 8.5.17/8-8 0x5C 系统错误强制寄存器(SERFR) R/W 0x0000_0000 8.5.18/8-8 0x60 系统紧急中断向量寄存器(SCVCR) R 0x0000_0000 8.5.19/8-8 0x64 系统管理中断向量寄存器(SMVCR) R 0x0000_0000 8.5.20/8-8 0x68-0xFF 保留 - - - 8.5.1 系统全局中断配置寄存器(SICFR System Global Interrupt Configuration Register) SICFR如图8-2所示,它定义最高优先级中断,以及中断在优先级表中是分组的还是分散的。更多信息见表8-4。 图8-2 系统全局中断配置寄存器(SICFR) 表8-4定义了SICFR的位字段。 表8-4 SICFR字段说明 位 名字 说明 0 - 写忽略,读=0 1-7 HPI 最高优先级中断。指定一个中断控制器中断源的7位唯一中断号/向量(见表8-6),将该中断源提升为IPIC优先级表(见表8-31)中的最高优先级。可以动态修改HPI。 8 - 写忽略,读=0 9 MPSB 组B的混合中断优先级方案。选择相应的MIXB优先级方案。不能动态修改。 0 分组的。在表顶部按优先级分组MIXB。 1 分散的。在表中按优先级分散MIXB。 10 MPSA 组A的混合中断优先级方案。选择相应的MIXA优先级方案。不能动态修改。 0 分组的。在表顶部按优先级分组MIXA。 1 分散的。在表中按优先级分散MIXA。 11 - 写忽略,读=0 12 IPSD 组D的内部中断优先级方案。选择相应的SYSD优先级方案。不能动态修改。 0 分组的。在表顶部按优先级分组SYSD。 1 分散的。在表中按优先级分散SYSD。 13-14 - 写忽略,读=0 15 IPSA 组A的内部中断优先级方案。选择相应的SYSA优先级方案。不能动态修改。 0 分组的(grouped)。在表顶部按优先级分组SYSA。 1 分散的(spread)。在表中按优先级分散SYSA。 16-21 - 写忽略,读=0 22-23 HPIT HPI优先级位置IPIC输出中断类型。定义在HPI优先级位置中,哪种类型的IPIC输出中断信号(/int、/cint或/smi)向核宣告其请求有效。不能动态修改这些位。(如果软件确实要修改,软件必须确认相应中断源已被屏蔽,或者在修改时不会发生中断)。 HPIT的定义如下: 00 HPI到核的/int请求有效。 01 HPI到核的/smi请求有效。 10 HPI到核的/cint请求有效。 11 保留。 24-31 - 写忽略,读=0 8.5.2 系统常规中断向量寄存器(SIVCR System Regular Interrupt Vector Register) SIVCR如图8-3所示,它包括7位编码,表示最高优先级上的常规未屏蔽中断源(/INT)。 注意 在核禁止模式中,用户只能使用SIVCR,以便读取更新了的中断向量寄存器(不应使用SCVCR和SMVCR)。 图8-3 系统常规中断向量寄存器(SIVCR) 表8-5定义了SIVCR的位字段。 表8-5 SIVCR字段说明 位 名字 说明 0-5 IVECx 向后(MPC8260)兼容的常规中断向量。指定核未决的、IPIC最高优先级常规中断源的6位唯一中断号。在出现常规中断请求时,可以读取SIVCR。如果有多个常规中断源,SIVCR锁存最高优先级的常规中断。注意,IVECx字段仅正确反映前64个中断向量(细节见表8-6)。读取时,不能修改SIVEC的值。 6-24 - 写忽略,读=0 25-31 IVEC 常规中断向量。指定核未决的、IPIC最高优先级常规中断源的7位唯一中断号。注意,在出现常规中断请求时,可以读取SIVCR。如果有多个常规中断源,SIVCR锁存最高优先级的常规中断。注意,IVEC字段正确反映所有的中断向量(细节见表8-6)。读取时,不能修改SIVCR(SIVEC?)的值。 表8-6给出了IVEC的定义。 表8-6 IVEC/CVEC/MVEC字段定义 中断ID号 中断含义 中断向量 0 错误(无中断) 0b000_0000 1-8 保留 0b000_0000-0b000_1000 9 UART1 0b000_1001 10 UART2 0b000_1010 11 SEC 0b000_1011 12-13 保留 0b000_1100-0b000_1101 14 I2C1 0b000_1110 15 I2C2 0b000_1111 16 SPI 0b001_0000 17 ipp_ind_ext-int[1] 0b001_0001 18 ipp_ind_ext-int[2] 0b001_0010 19 ipp_ind_ext-int[3] 0b001_0011 20 IRQ4 0b001_0100 21 IRQ5 0b001_0101 22 IRQ6 0b001_0110 23 IRQ7 0b001_0111 24-31 保留 0b001_1000-0b001_1111 32 TSEC1 Tx 0b010_0000 33 TSEC1 Rx 0b010_0001 34 TSEC1 Err 0b010_0010 35 TSEC2 Tx 0b010_0011 36 TSEC2 Rx 0b010_0100 37 TSEC2 Err 0b010_0101 38 USB DR 0b010_0110 39 USB MPH 0b010_0111 40-47 保留 0b010_1000-0b010_1111 48 ipp_ind_ext-int[0] 0b011_0000 49-63 保留 0b011_0001-0b011_1111 64 ipp_ind_ext-int[32] 0b100_0000 65 ipp_ind_ext-int[33] 0b100_0001 66 ipp_ind_ext-int[34] 0b100_0010 67 ipp_ind_ext-int[35] 0b100_0011 68 RTC ALR 0b100_0100 69 USB MPH 0b100_0101 70 SBA 0b100_0110 71 USB MPH 0b100_0111 72 GTM4 0b100_1000 73 GTM8 0b100_1001 74 GPIO1 0b100_1010 75 GPIO2 0b100_1011 76 DDR 0b100_1100 77 LBC 0b100_1101 78 GTM2 0b100_1110 79 GTM6 0b100_1111 80 PMC 0b101_0000 81-83 保留 0b101_0001-0b101_0011 84 GTM3 0b101_0100 85 GTM7 0b101_0101 86-89 保留 0b101_0110-0b101_1001 90 GTM1 0b101_1010 91 GTM5 0b101_1011 92-127 保留 0b101_1100-0b111_1111 8.5.3 系统内部中断未决寄存器(SIPNR_H和L System Internal Interrupt Pending Register) SIPNR_H和SIPNR_L中的每一位都对应一个内部中断源,如图8-4和8-5所示。(表8-7列出了已实现了的位。)当收到中断请求时,中断控制器置位对应的SIPNR位。在处理完未决中断后,通过清除对应的事件寄存器位,用户可以清除SIPNR位。 注意,SIPNR位的状态不会依相对优先级改变。 图8-4 系统内部中断挂起寄存器(SIPNR_H) 表8-7列出了实现的SIPNR_H位。 表8-7 SIPNR_H/SIFCR_H/SIMSR_H分配 位 字段 0 TSEC1 Tx 1 TSEC1 Rx 2 TSEC1 Err 3 TSEC2 Tx 4 TSEC2 Rx 5 TSEC2 Err 6 USB DR 7 USB MPH 8-23 - 24 UART1 25 UART2 26 SEC 27-28 - 29 I2C1 30 I2C2 31 SPI 表8-8定义了SIPNR_H的位字段。 表8-8 SIPNR_H字段说明 位 名字 说明 0-31 INTn 每个已实现了的位(表8-7中列出)都对应一个内部中断源。当收到中断请求时,中断控制器置位对应的SIPNR位。在处理完未决中断后,通过清除对应的事件寄存器位,用户可以清除SIPNR位。 SIPNR位是只读的。写入该寄存器无用。 注意,SIPNR位的状态不会依相对优先级变化。 对于未实现的位,写忽略,读=0。 SIPNR_L如图8-4所示。 图8-5 系统内部中断未决寄存器(SIPNR_L) 表8-9列出了实现的SIPNR_L位。 表8-9 SIPNR_L/SIFCR_L/SIMSR_L分配 位 字段 0 RTC SEC 1 PIT 2 PCI1 3 ipi_int_internal[35]- 4 RTC ALR 5 MU 6 SBA 7 DMA 8 GTM4 9 GTM8 10 GPIO1 11 GPIO2 12 DDR 13 LBC 14 GTM2 15 GTM6 16 PMC 17-19 - 20 GTM3 21 GTM7 22-25 - 26 GTM1 27 GTM5 28-30 - 31 - 表8-10定义了SIPNR_L的位字段。 表8-10 SIPNR_L字段说明 位 名字 说明 0-31 INTn 每个已实现了的位(表8-7中列出)都对应一个内部中断源。当收到中断请求时,中断控制器置位对应的SIPNR位。在处理完未决中断后,通过清除对应的事件寄存器位,用户可以清除SIPNR位。 SIPNR位是只读的。写入该寄存器无效。 注意,SIPNR位的状态不会依相对优先级变化。 对于未实现的位,写忽略,读=0。 8.5.4 系统内部中断组A优先级寄存器(SIPRR_A System Internal Interrupt Group A Priority Register) SIPRR_A如图8-6所示,它定义TSEC1发送请求(TSEC1 Tx)、TSEC1接收请求(TSEC1 Rx)、TSEC1发送/接收错误(TSEC1 Err)、TSEC2发送请求(TSEC2 Tx)、TSEC2接收请求(TSEC2 Rx)、TSEC2发送/接收错误(TSEC2 Err)、USB DR和USB MPH内部中断信号之间的优先级。 更多信息参见8.6.3节“内部中断组相对优先级” 图8-6 系统内部中断组A优先级寄存器(SIPRR_A) 表8-11定义了SIPRR_A的位字段。 表8-11 SIPRR_A字段说明 位 名字 说明 0-2 SYSA0P SYSA0优先级顺序。定义哪个中断源在SYSA0优先级位置中宣告其请求有效。用户不能为多个优先级位置(0-7)规定相同的编码。可以动态改变这些位。SYSA0P的定义如下: 000 TSEC1 Tx在SYSA0优先级位置中宣告其请求。 001 TSEC1 Rx在SYSA0优先级位置中宣告其请求。 010 TSEC1 Err在SYSA0优先级位置中宣告其请求。 011 TSEC2 x在SYSA0优先级位置中宣告其请求。 100 TSEC2 Rx在SYSA0优先级位置中宣告其请求。 101 TSEC2 Err在SYSA0优先级位置中宣告其请求。 110 USB DR在SYSA0优先级位置中宣告其请求。 111 USB MPH在SYSA0优先级位置中宣告其请求。 3-11,16-27 SYSA1P-SYSA7P 与SYSA0P相同,但为SYSA1P-SYSA7P定义 12-15,28-31 - 写忽略,读=0 更多信息参见8.6.3节“内部中断组相对优先级” 8.5.5 系统内部中断组D优先级寄存器(SIPRR_D System Internal Interrupt Group D Priority Register) SIPRR_D如图8-7所示,它定义表8-12列出的中断源之间的优先级。 图8-7 系统内部中断组D优先级寄存器(SIPRR_D) 表8-12定义了SIPRR_D的位字段。 表8-12 SIPRR_D字段说明 位 名字 说明 0-2 SYSD0P SYSD0优先级顺序。定义哪个中断源在SYSD0优先级位置中宣告其请求有效。用户不能为多个优先级位置(0-7)规定相同的编码。可以动态改变这些位。SYSD0P的定义如下: 000 UART1在SYSD0优先级位置中宣告其请求。 001 USRT2在SYSD0优先级位置中宣告其请求。 010 SEC在SYSD0优先级位置中宣告其请求。 011 保留 100 保留 101 I2C1在SYSD0优先级位置中宣告其请求。 110 I2C2在SYSD0优先级位置中宣告其请求。 111 SPI在SYSD0优先级位置中宣告其请求。 3-11,16-27 SYSD1P-SYSD7P 与SYSD0P相同,但为SYSD1P-SYSD7P定义 12-15,28-31 - 写忽略,读=0 8.5.6 系统内部中断屏蔽寄存器(SIMSR_H和SIMSR_L System Internal Interrupt Mask Register) SIMSR_H和SIMSR_L实现的每一位都对应一个内部中断源,如图8-8和8-9所示。用户通过清除对应的SIMSR位屏蔽中断。当出现中断请求时,无论SIMSR位的设置如何,对应的SIPNR位都会被置位。但是,如果对应的SIMSR位是清除的,则不将中断请求传给核。 如果用户在对应中断源请求中断服务的同时清除SIMSR位,则请求停止。如果用户稍后置位SIMSR位,则核根据其优先级处理所有未决的对应的中断请求。 图8-8 系统内部中断屏蔽寄存器(SIMSR_H) 表8-13定义了SIMSR_H的位字段。 表8-13 SIMSR_H字段说明 位 名字 说明 0-31 INTn 每个实现了的位(表8-9中列出)内部中断源。用户通过清除对应的SIMSR位屏蔽中断,置位对应的SIMSR位则不屏蔽(允许)中断。用户可在任何时候读取SIMSR。 注意: l SIMSR位的状态不会依相对优先级变化。 l 用户只能通过清除对应事件寄存器中的所有未屏蔽事件,来清除由多个中断事件置位的未决寄存器位。 l 如果在对应SIPNR位引起到核的中断请求的同时, SIMSR位是屏蔽的,则发出错误向量(如果无其他未决中断)。所以用户应永远包括一个错误向量例程,即使该例程仅包括一条rfi指令。不能屏蔽错误向量。 对于未实现的位,即图8-8中显示为保留的位,写忽略,读=0。 SIMSR_L如图8-9所示。 图8-9 系统内部中断屏蔽寄存器(SIMSR_L) 表8-14定义了SIMSR_L的位字段。 表8-14 SIMSR_L字段说明 位 名字 说明 0-31 INTn 每个实现了的位(表8-9中列出)都对应一个内部中断源。用户通过清除对应的SIMSR位屏蔽中断,置位对应的SIMSR位则不屏蔽(允许)中断。用户可在任何时候读取SIMSR。 注意: l SIMSR位的状态不会依相对优先级变化。 l 用户只能通过清除对应事件寄存器中的所有未屏蔽事件,来清除由多个中断事件置位的未决寄存器位。 l 如果在对应SIPNR位引起到核的中断请求的同时, SIMSR位是屏蔽的,则发出错误向量(如果无其他中断挂起)。所以用户应永远包括一个错误向量例程,即使该例程仅包括一条rfi指令。不能屏蔽错误向量。 对于未实现的位,即图8-9中显示为保留的位,写忽略,读=0。 8.5.7 系统内部中断控制寄存器(SICNR System Internal Interrupt Control Register) SICNR如图8-10所示,它定义IPIC在SYSA0-SYSA1和SYSD0-SYSD1状态中的输出中断类型(/int、/cint或/smi)。所有其他优先级位置向核宣告/int有效。 注意,在核禁止模式中,用户应使用/int输出中断类型(不应使用/cint或/smi)来读取更新了的SIVCR。 图8-10 系统内部中断控制寄存器(SICNR) 表8-15定义了SICNR的位字段。 表8-15 SICNR字段说明 位 名字 说明 0-1 SYSD0T SYSD0优先级位置IPIC输出中断类型。定义在SYSD0优先级位置中,哪种类型的IPIC输出中断信号(/int、/cint或/smi)向核宣告其请求有效。不能动态修改这些位。(要修改它,软件必须确保对应中断源被屏蔽,或在修改期间不会发生中断)。 SYSD0T定义如下: 00 SYSD0的/int请求对核有效。 01 SYSD0的/cint请求对核有效。 10 SYSD0的/smi请求对核有效。 11 保留 2-3 SYSD1T 与SYSD0T相同,但为SYSD1T定义 4-23 - 写忽略,读=0 24-25 SYSA0T SYSA0优先级位置IPIC输出中断类型。定义在SYSA0优先级位置中,哪种类型的IPIC输出中断信号(/int、/cint或/smi)向核宣告其请求有效。不能动态修改这些位。(要修改它,软件必须确保对应中断源被屏蔽,或在修改期间不会发生中断)。 SYSA0T定义如下: 00 SYSA0的/int请求对核有效。 01 SYSA0的/cint请求对核有效。 10 SYSA0的/smi请求对核有效。 11 保留 26-27 SYSA1T 与SYSA0T相同,但为SYSA1T定义 28-31 - 写忽略,读=0 8.5.8 系统外部中断未决寄存器(SEPNR System External Interrupt Pending Register) SEPNR中的每一位都对应一个外部中断源,如图8-11所示。当收到中断时,中断寄存器置位相应的SEPNR位。 1 该位仅在将ipp_ind_ext_int[0]信号配置为外部可屏蔽中断(SEMSR[Sipp_ind_ext_int[0]]=0)时才有效 2 用户应在复位无效之前将所有的IRQ输入都驱动为无效状态 图8-11 系统外部中断挂起寄存器(SEPNR) 表8-16定义了SEPNR的位字段。 表8-16 SEPNR位字段说明 位 名字 说明 0-7 IRQn 每一位都对应一个外部中断源。当收到中断时,中断寄存器置位相应的SEPNR位。 在处理未决中断时,用户必须清除对应的SEPNR位。对于电平触发的情况,软件需要将/IRQn置为无效,这样可以自动清除SEPNR中的位。对于边沿触发的情况,软件需要清除SEPNR中的位。 将SEPNR位置为1可以清除SEPNR位。因为用户只能清除该寄存器中的位,因此向该寄存器写入0无效。 8-31 - 写忽略,读=0 8.5.9 系统混合中断组A优先级寄存器(SMPRR_A System Mixed Interrupt Group A Priority Register) SMPRR_A如图8-12所示,它定义表8-17所列出的中断源之间的优先级。 图8-12 系统混合中断组A优先级寄存器(SMPRR_A) 表8-17定义了SMPRR_A的位字段。 表8-17 SMPRR_A字段说明 位 名字 说明 0-2 MIXA0P MIXA0优先级顺序。定义哪个中断源在MIXA0优先级位置中宣告其请求有效。用户不能为多个优先级位置(0-7)规定相同的编码。可以动态改变这些位。MIXA0P的定义如下: 000 ipi_int_internal[32]在MIXA0P优先级位置中宣告其请求有效。 001 ipi_int_internal[33]在MIXA0P优先级位置中宣告其请求有效。 010 ipi_int_internal[34]在MIXA0P优先级位置中宣告其请求有效。 011 ipi_int_internal[35]在MIXA0P优先级位置中宣告其请求有效。 100 ipp_ind_ext_int [0]在MIXA0P优先级位置中宣告其请求有效。在将ipp_ind_ext_int [0]信号配置为外部可屏蔽中断(SEMSR[S ipp_ind_ext_int [0]]=0)时,MIXA0位置的该字段才有效(不能被忽略)。 101 ipp_ind_ext_int [1]在MIXA0P优先级位置中宣告其请求有效。。 110 ipp_ind_ext_int [2]在MIXA0P优先级位置中宣告其请求有效。 111 ipp_ind_ext_int [3]在MIXA0P优先级位置中宣告其请求有效。 3-11,16-27 MIXA1P-MIXA 7P 与MIXA 0P相同,但为MIXA 1P-MIXA 7P定义 12-15,28-31 - 写忽略,读=0 8.5.10 系统混合中断组B优先级寄存器(SMPRR_B System Mixed Interrupt Gro
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服