cortexa8中断机制课件_第1页
cortexa8中断机制课件_第2页
cortexa8中断机制课件_第3页
cortexa8中断机制课件_第4页
cortexa8中断机制课件_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

向量中断控制器概述A8内核具有两个中断输入,分别为IRQ中断和FIQ中断。4个向量中断控制器(VIC)负责管理芯片的中断源,最多可以管理93个中断输入请求。CPU内核向量中断控制器程序状态寄存器CPSR与VIC的关系ARM内核通过CPSR来监视和控制内部的操作,CPSR中的“I”位和“F”位分别用来控制IRQ模式和FIQ模式的使能。CPUARM7TDMI-SVICIRQFIQCPSR[7](I)CPSR[6](F)向量中断控制器程序状态寄存器CPSR与VIC的关系当I=1时,禁止IRQ中断CPUARM7TDMI-SVICIRQFIQCPSR[7](I)CPSR[6](F)当I=0时,使能IRQ中断CPUARM7TDMI-SVICIRQFIQCPSR[7](I)CPSR[6](F)向量中断控制器中断分类中断输入请求可以在VIC中被设置为以下二类:

FIQ中断:具有最高优先级;

向量IRQ中断:具有一般优先级;4.9向量中断控制器IRQ中断相应流程将当前的程序状态寄存器的内容备份即,SPSR_irq=CPSR处理器切换到IRQ模式禁止IRQ中断,即,I=1保存返回地址LR_irq=PC设置IRQ异常入口地址PC=0x18发生IRQ异常事件寄存器描述-参数设置寄存器名称描述复位置地址VICVectAddr0~VICVectAddr32向量地址0寄存器~向量地址32寄存器00xF200_0100~0xF200_017CVIC0Addr中断地址寄存器00xF200_0F00向量地址0寄存器VICVectAddr0向量地址寄存器VICVectAddr向量地址31寄存器VICVectAddr31控制寄存器功能描述4.9向量中断控制器控制寄存器功能描述VICIntEnable使能(禁止)中断源产生中断VICIntEnClrVICIntSelect中断类型选择:FIQ&IRQVIC0VectADDR中断地址设置FIQ中断向量IRQ中断中断源0中断源1……中断源31VIC0将32个中断输入进行分配IRQ中断状态寄存器VICIRQStatus中断选择寄存器VICIntSelect中断使能寄存器VICIntEnable中断使能清零寄存器VICIntEnClr中断源[31:0]软件中断使能寄存器VICSoftInt软件中断清零寄存器VICSoftIntClearFIQ中断状态寄存器VICFIQStatus中断状态寄存器VICRawIntrIRQFIQ寄存器描述-状态寄存器名称描述访问复位值地址VICIRQStatusIRQ状态寄存器该寄存器读出定义为IRQ并使能的中断的状态RO00xFFFFF000VICFIQStatusFIQ状态请求该寄存器读出定义为FIQ并使能的中断的状态RO00xFFFFF004VICRawIntr所有中断的状态寄存器该寄存器读出32个中断请求/软件中断的状态,不管中断是否使能或分类RO00xFFFFF008注意:读取VICRawIntr寄存器将得到所有32个中断请求和软件中断的状态,它不管中断是否使能或分类。保护使能寄存器4.9向量中断控制器保护使能寄存器(VICProtection):位[31:1]0功能—当该位为1时,只能在特权模式下访问VIC寄存器。

在某些场合可能需要禁止在用户模式下访问VIC寄存器,以提高软件的安全等级。IRQ中断处理4.9向量中断控制器SPSR_irq=CPSR12CPSR=nzcvqIft_irq3VICVectAddr=VICVectAddrn4LR_irq=PC硬件处理5PC=0x18软件处理执行中断服务程序2设置返回地址3恢复程序状态寄存器CPSR4PC[VICVectAddr]1IRQ中断处理4.9向量中断控制器SUBSPC,LR,#4SPSR_irq=CPSR12CPSR=nzcvqIft_irq3VICVectAddr=VICVectAddrn4LR_irq=PC硬件处理5PC=0x18软件处理执行中断服务程序2设置返回地址3恢复程序状态寄存器CPSR4LDRPC,[PC,#-0xff0]1IRQ中断的设计实例将EINT0中断分配为IRQ,中断服务程序地址设置为EINT0_ISR。C代码:步骤:IRQ通道0向量地址寄存器VICVectAddr0中断源0中断服务程序地址EINT0_ISR中断使能寄存器VIC0IntEnable中断通道#4对应位,置“1”中断选择寄存器VIC0IntSelect中断源0分配为IRQ中断(EINT0为中断源0)VIC0INTSELECT

&=

~3;VIC0VectAddr0=(int)EINT0_ISR;

VIC0INTENABLE

|=

0x1;图示IRQ中断的发生过程0x000000000xFFFFFFFF用户程序中断服务程序异常向量表①②④⑤⑥③IRQ_Eint0???VICVectAddr0VICVectAddrIRQ_Eint0⑤LDRPC,[PC,#-0xff0]注意:任何IRQ中断产生之后,微控制器跳转到地址0x18执行代码,该地址处的指令为:

LDRPC,[PC,#-0xff0]在执行该指令时,PC指向当前指令后的第2条指令,即地址0x20。该指令将内存地址:

0x20-0xFF0=0xFFFFF030处的内容存入PC,该地址正是VICVectAddr寄存器的地址。所以一条ARM指令即可实现程序向中断服务程序的跳转。外部中断输入概述LPC2000系列ARM具有32路外部中断,可以设置为2种类型:边沿触发:上升沿触发下降沿触发双边沿触发电平触发:高电平触发低电平触发中断信号下降沿触发外部中断输入边沿触发中断下降沿触发类型中断的请求和清除时序。T1T2T1时刻,中断信号有下降沿产生,中断控制器向CPU发出中断请求。1T2时刻,CPU执行完成中断控制器的中断服务程序,清除中断,中断信号回复到高电平。2中断源0(EINT0)...中断源14(EINT14)中断源15(EINT15)中断源16(EINT16~31)ARM处理器核VIC0IRQFIQ4.10外部中断输入外部中断源所以的外部中断源都由VIC0管理,其中外部中断含有16个独立的中断号和一个共用的中断号。外部中断源寄存器组外部中断源分组管理,分为4组:EXT_INT_0EXT_INT_1EXT_INT_2EXT_INT_3名称描述访问复位值*地址EXT_INT_0_CON设置中断方式的寄存器R/W00xE020_0E00EXT_INT_0_FLTCON0EXT_INT_0_FLTCON1外部中断源滤波器设置R/W0x808080800xE020_0E800xE020_0E84EXT_INT_0_MASK外部中断掩码设置寄存器R/W0xFF0xE020_0F00EXT_INT_0_PEND外部中断挂起寄存器R/W00xE020_0F40寄存器汇总以EXT_INT_0组为例,下列为0号组所包含的寄存器外部中断方式控制寄存器(EXT_INT_X_CON):该寄存器控制着外部中断输入信号的有效触发方式,低四位分别对应外部中断3~0。对应位为0时,电平触发外部中断;对应位为1时,边沿触发外部中断。

该寄存器每3位设置一个中断源的触发方式,即EXT_INT_X_CON的0~2位用于设置中断源0;4~6位用于设置中断源1;触发方式的设置如图掩码设置中断标志管脚功能设置GPHXCONCPU其它部件寄存器汇总中断相关寄存器EXT_INT_0_PENDEINT7EINT070EINT11EINT22….6~3

若引脚上出现了符合要求的信号,EXT_INT_X_PEND寄存器中对应的中断标志将被置位。以0号组外部中断组为例,向该寄存器的EINT0~EINT7位写入1,可将其清零。外部中断标志寄存器(EXT_INT_X_PEND):通过对该寄存器的设置可以屏蔽对应的中断信号。外部中断掩码寄存器(EXT_INT_X_MASK):外部中断触发方式EXT_INT_X_CONEXT_INT_X_MASKEXT_INT_X_PEND中断相关寄存器EXT_INT_0_MASKEINT_MASK7EINT_MASK070EINT_MASK11EINT_MASK22….6~3外部中断与VIC的关系注意:这里仅以EINT0为例来进行讲解,EINT1~EINT3与之类似,此处不再重复。外部中断0位于VIC0的0号中断源0,中断使能寄存器VIC0IntEnable[0]=1用来控制通道0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论