- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
向量中断控制器 向量中断控制器 向量中断控制器 向量中断控制器 向量中断控制器 4.9 向量中断控制器 4.9 向量中断控制器 4.9 向量中断控制器 4.9 向量中断控制器 4.9 向量中断控制器 4.9 向量中断控制器 外部中断输入 外部中断输入 外部中断输入 外部中断源寄存器组 外部中断源分组管理,分为4组: EXT_INT_0 EXT_INT_1 EXT_INT_2 EXT_INT_3 * 概述 A8内核具有两个中断输入,分别为IRQ中断和FIQ中断。4个向量中断控制器(VIC)负责管理芯片的中断源,最多可以管理93个中断输入请求。 CPU 内核 程序状态寄存器CPSR与VIC的关系 ARM内核通过CPSR来监视和控制内部的操作,CPSR中的“I”位和“F”位分别用来控制IRQ模式和FIQ模式的使能。 CPU ARM7TDMI-S VIC IRQ FIQ CPSR[ 7 ](I) CPSR[ 6 ](F) 程序状态寄存器CPSR与VIC的关系 当I = 1时,禁止IRQ中断 CPU ARM7TDMI-S VIC IRQ FIQ CPSR[ 7 ](I) CPSR[ 6 ](F) 当I = 0时,使能IRQ中断 CPU ARM7TDMI-S VIC IRQ FIQ CPSR[ 7 ](I) CPSR[ 6 ](F) 程序状态寄存器CPSR与VIC的关系 当F = 1时,禁止FIQ中断 CPU ARM7TDMI-S VIC IRQ FIQ CPSR[ 7 ](I) CPSR[ 6 ](F) 当F = 0时,使能FIQ中断 CPU ARM7TDMI-S VIC IRQ FIQ CPSR[ 7 ](I) CPSR[ 6 ](F) 中断分类 中断输入请求可以在VIC中被设置为以下二类: FIQ中断:具有最高优先级; 向量IRQ中断:具有一般优先级; IRQ中断相应流程 将当前的程序状态寄存器的内容备份 即,SPSR_irq = CPSR 处理器切换到IRQ模式 禁止IRQ中断,即,I = 1 保存返回地址 LR_irq = PC 设置IRQ异常入口地址 PC = 0x18 发生IRQ异常事件 寄存器描述-参数设置寄存器 0 0 复位置 0xF200_0F00 中断地址寄存器 VIC0Addr 0xF200_0100 ~ 0xF200_017C 向量地址0寄存器 ~ 向量地址32寄存器 VICVectAddr0 ~ VICVectAddr32 地址 描述 名称 向量地址0寄存器 VICVectAddr0 向量地址寄存器 VICVectAddr 向量地址31寄存器 VICVectAddr31 0xF200_000C 0 R/W 中断选择寄存器 将32个中断请求的每个中断分配为FIQ或IRQ VIC0IntSelect 0xF200_0010 0 R/W 中断使能寄存器 控制32个中断请求(包括软件中断)的使能 VIC0IntEnable 0xF200_0014 0 W 中断使能清零寄存器 将中断使能寄存器中的一个或多个位清零 VIC0IntEnClr 地址 复位值 访问 描述 名称 中断选择寄存器 VIC0IntSelect 中断使能寄存器 VIC0IntEnable 中断使能清零寄存器 VIC0IntEnClr 中断源 [31:0] 中断状态寄存器 VICRawIntr IRQ FIQ 寄存器描述-控制寄存器 控制寄存器功能描述 中断地址设置 VIC0VectADDR 中断类型选择:FIQ IRQ VICIntSelect VICIntEnClr 使能(禁止)中断源产生中断 VICIntEnable 功能描述 控制寄存器 FIQ中断 向量IRQ中断 中断源0 中断源1 …… 中断源31 VIC0 将32个 中断输入 进行分配 IRQ中断状态寄存器 VICIRQStatus 中断选择寄存器 VICIntSelect 中断使能寄存器 VICIntEnable 中断使能清零寄存器 VICIntEnClr 中断源 [31:0] 软件中断使能寄存器 VICSoftInt 软件中断清零寄存器 VICSoftIntClear FIQ中断状态寄存器 VICFIQStatus 中断状态寄存器 VICRawIntr IRQ FIQ 寄存器描述-状态寄存器 0xFFFF F008 0 RO 所有中断的状态寄存器 该寄存器 读出32个中断请求/软件中断的状态,不管中断是否使能或分类 VICRawIntr 0xFFFF F004 0 RO FIQ状态请求 该寄存器读出定义为FIQ并使能的中断的状态 VICFIQStatus 0xFFFF F000 0 RO IRQ状态
文档评论(0)