CPU中断相关知识科普.docx
CPU中断相关知识科普文章目录 1.什么是中断 2.CPU中断 2.1CPU中断的概述 2.2CPU中断向量和优先级 2.3CPIJ中断的寄存器 2.4可屏蔽中断的响应过程 2.5X2812f1¾PIE中断 3.1PIE中断概述 3.2PIE中断寄存器 3.3PIE中断向量表 4.X281x的三级中断系统分析 4.1外设级 4.2PIE级 4.3CPU级1 .什么是中断中断是便性和软件驱动事件,它使得CPU暂停当前的主程序,转而去执行一个中断服务子程序。X281X的中断系统从上至下分成了三级,即CPU级中断、P1E级中断、外设中断。2 .CPU中断通常中断申请信号是由外围设备提出的,表示一个特殊的时间已经发生,请求CPU暂停正在执行的主程序,去处理相应的更为紧急的事件。2.1 CPU中断的概述中断的触发有两种:一种是在软件中写指令,例如INTR、ORIFR或者TRAP指令;另一种是硬件方式触发,例如来自片内外设或者外设设备的中断信号,表示某个事件已经发生。无论是软件中断还是硬件中断,都可以归结为可屏蔽中断和不可屏蔽中断。中断迎中断信号不可屏蔽中断INTR指令和TRAp指令、硬件断NMI、非涉聆陷阱以及硬件复位中断一旦中断申请信号发出可屏蔽由断大部分的中断CPU查这个中断出接受到中断信号后,CPU会按照以下4个步骤来处理中断:接收中断信号:外设或者其他方式向CPU提出中断请求。响应中断:如果是个可屏蔽中断,会检查它的使能情况,决定是否响应,如果是不可屏蔽中断,就立即响应。CPU会完整地执行当前指令,为了记住当前主程序的状态,CPU必须做一些准备工作,例如将寄存器的内容存放到堆栈。准备工作做完之后,CPU就取回中断向量,开始执行中断服务子程序。2.2CPU中断向量和优先级X2812支持32个CPU中断,其中每一个中断都是一个32位的中断向量,即两个16位的寄存器,里面存储的是相应中断服务子程序的入口地址,这个入口地址是个22位的地址。高地址515低地址忽略22位中断向试中断向中绝对地址优先级说明VMAP=OVMAP=IRESET0x0000000x3FFFeOKfi)员位中断INTI0x000002Ox3FFFC25可屏蔽中断11NT20x0000040x3FFFC46可屏薮中断2INT30x0000060x3FFFC67可建酸中断3INT40x0000080x3FFFC88可屏蔽中断41NT5OxOOOOOA0x3ITTCA9可屏蔽中断5INT6OxOOOOOC0x3EEECC10可屏蔽中断6!NT70x0(X)E0x3FFFCE11可屏蔽中断7INT80x0000100x3FFFD012可屏蔽中断8INT90x0000120x3EFFD213可屏蔽中断9INT1O0x0000140x3FFFIM14可屏蔽中断IOINTI!0x0000160x3FFFD615可屏蔽中断HINT120x0000180x3FFFD816可屏蔽中断12INTI3OxOOOOIA0x3FFFDA7M屏蔽中断13INT14OxOOOOIC0x3FTFDC18可屏蔽中断14DM)G1NTOxO(X)OIE0x3KEFDE19(最低)可屏蔽数据标忐中断RTOS1NT0x0000200x3FFFE04可屏蔽实时操作系统中麻Reserved0x0000220x3FFFE22保留NM10x0000240x3FFFE43不可屏蔽硬件中断I11EGA1OxOOOO260x3FFFE6祚法指令捕获USER10x0000280x3FFFE8川户自定义的小ST夕中断向量绝对地址优先级说FVMAP=OVMAPh1USER2OxOOOOZA0x3FFFEA用户C定义陷阱(TRAP)USER30x0002C0x3FFFEC用户口定义陷阱(TRAP)USER40x00002E0x3FFFEE用户自定义陷阱(TRAP)USERS0x0000300x3FFEFO用户自定义陷阱(TRAP)USER60x0000320x3FFFE2用户。定义陷阱(TRAP)USER70x0000340x3FFFF4用户口定义陷阱(TRAP)USER80x0000360x3FFEE6用户自定义陷阱(TRAP)USER90x0000380x3FFFF8用户自定义陷爵(TRAP)USERIO0x00003A0x3FFFFA用户自定义陷阱(TRAP)USERI10x00003C0x3FFFFC用户F1定义陷阱(TRAP)USER120x00003E0x3FFFFE用户自定义陷册(TRAP)2.3CPU中断的寄存器15141312I1IO9RTOSINTD1INTIINT14INTI3IINTI2IINTIIIINT1OR/W-0R/W-0IUW-OR/W-0R/W-0R/W-0R/W-07654321INT8INT7fINT6INTSINT4INT3IINT2ID1-DV.D1.D1-D1-DV-CPU中断里,INT1TNT14是14个通用中断,D1OGINT数据标志中断和RT0SINT实时操作系统中断是为位真而设计的两个中断。这16个中断都是可屏蔽中断,通过CPU中断使能寄存器IER就可以实现使能或者禁止中断。寄存器功能不断便能寄存器IER16使能或者禁止可屏蔽中断标志寄存器IFR16表示对应CPU中断是否提出请求2.4可屏蔽中断的响应过程可屏蔽中断的响应过程如上图所示。、某个可屏蔽中断提出请求时,将其在IFR中的对应位置位;CPU检测到中断标志位被置位后,接着检测该中断是否被使能;如果IER中对应位被使能,CPU检查全局中断INTM是否被使能;如果INTM被使能,CPU响应中断,暂停主程序并转向执行相应的中断服务子程序。2.5X2812的P1E中断上图是DSP的中断源,CPU共有16根中断线,包括2个不可屏蔽中断垣和NMI,以及14各个可屏蔽中断INT1-INT14。3.1 PIE中断概述DSP内部有很多可以产生中断的外设,为了能够及时地处理好各个外设的请求,专门增添了处理外设中断的扩展模块,简称外设中断控制器PIE。PIE一共可以支持96个不同的中断,将这些中断分成了12个组,每个组8个中断,每个组都被反馈到CPU内核的INT1-INT12这12条中断线中的某一条线上。×PIECPUsKINTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INT1WAKE1NTTINTOADCINTX1NT2XINTIPDPINTBINT2T1OF1NTT1UF1NTTIC1NTT1P1NTCMP3INTCMP21NT1NT3CAP1NT3CAPINT2CAP1NT1T2OF1NTT2UF1NTT2C1NTINT4T3OF1NTT3UE1NTT3C1NTT3PINTCMP61NTCMP51NT1NT5CAPINT6CAPINT5CAPINT4T4OFINTT4UHNTT4CINT1NT6MXINTMR1NTSPriX1NTA1NT71NT81NT9ECAHNTecnointScitxintbScirxintbSC1TXINTINTIOINT11INT12在12条中断线中,INTI的优先级最高,INT12的优先级最低,同一组内,INTx.1的优先级最高。3.2 PIE中断寄存器寄存器名称大小说明PIECTR116PIE斐制番浮器,俣存从PIE向呈表取回的向曼荒址PIEACK16P1Ee断应答寄存器,表示每一组中新的CPUBB应情兄PIEIER116PIE,INT1组便能专存署PIEIFR116PIE.1NT1组标志叁存器PIEIER1216PIE.INT12组使能寄存器PIEIFR1216PIE.INT12组标志寄存器P1E一共可支持96个中断,每个中断都有中断服务子程序ISR,将这些子程序的地址存储在一片连续的幽1空间内,就是PIE中断向量表,它由256x16的RAM空间组成。在DSP中,中断向量表可以映射到5个不同的存储空间,主要由以下几个信号来控制。向量映像向址获取位置地址范圉VMAPM0M1MAPMP/MM1向盘M1SRAM0x000000-0x00003F00XMO向量MOSRAM0x000000OxOO(K)3F01XBRCM向量KOM0x3FFFCO-0x3FFFFF1X0XI、TF向负X1NTFZonc70x3FFFCo-0x3FFFFF1X1PIE向fitP1EOxOOODOO*-0x000DFF1XVBjK-IM1向量和MO向量仅留给I1测试用,VMAP值上电后是默认取1的,而初始化P1E时,会将ENPIE的值设为1,即F2812起左正常情况下只使用PIE向量映射表。外设中断12X8=96实际使用45个互设级"""4. X28IX的三级中断系统分析-1/96路X281x采用的是如上图所示的三级中断机制,分为外设级、PIE级、CPU级,对于某一个具体的外设中断请求,只要有任一级不允许,CPU最终都不会响应该外设级中断。下面以CPU定时器0的周期中断为例。4.1 外设级CPU定时器0的计数器寄存器T1MH:T1M计数到。时,就产生了一个ToINT时间,即CPU定时器0的周期中断;若CPU定时器0的控制寄存器TIMERoTCR的第15位定时器中断标志T1F被置位为1,若第14位定时器中断使能位TIE也是1,就会向PIE控制器发出中断请求;4.2PIE级CPU定时器O的周期中断TOINT对应于PIEIFR1的第七位和PIEIER1的第七位;由于P1E控制器是多路复用的,每一个组同一时间内只能有一个中断被响应,根据PiE各位的状态决定谁被响应;4.3CPU级CPU定时器0的周期中断TOINT发送