DSP的外围中断PIE

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

DSP外围中断扩展PeripheralInterruptExpansion(PIE)•PIE将外围高达96个中断源每8个分成一组,分为12组中断,每组一个中断输入线进CPU(INT1-INT12)。•96个中断每个都有一个中断矢量的入口地址,存放在RAM中的指定地址,在CPU响应某一中断时,会自动到相应中断入口地址寻找中断服务程序,执行中断相应操作。•各个中断的开放或禁止由CPU控制PIE和CPU级各个中断使能位完成。CPU中断系统中断响应的三个级别中断响应的三个级别•外设级一旦外设产生中断事件,对应外设的中断标志位寄存器相应位置1。如果对应中断使能位设为1,则外设中断请求信号INTx.y(x=1~12,y=1~8)送到PIE控制器。PIE分组情况PIE级•PIE级每个中断都有一个标志位PIEIFRx.y和一个中断使能位PIEIERx.y。•对每个CPU中断组INT1~12都有一个应答位PIEACKx。•一旦PIE控制中产生中断请求,则相应PIE中断标志位PIEIFRx.y就置1。如果中断使能位PIEIERx.y也为1,则PIEACKx决定CPU是否相应该中断。如果PIEACKx清0,则PIE级中断进入CPU。如果PIEACKx=1,则等待该位变0后将PIE中断送入CPU。CPU级•当PIE级中断送入CPU后,CPU级中断标志位寄存器的标志位就置1。如果CPU的中断使能寄存器IER相应位置1,且全局中断屏蔽位INTM(ST1寄存器的第0位)为0,CPU就响应中断,进入中断服务程序。PIE分组情况中断响应•在进入中断服务子程序前,DSP硬件会自动将IFRx清0,将CPU内部的一些关键寄存器内容(例如PC的原来内容)入堆栈保存,然后,将IERx清0,INTM置1,禁止其他中断响应,避免中断嵌套。•中断服务程序响应完成后,原来保存内容从中断弹出,但在返回前,需将外设寄存器中断标志位软件清0,以便外设能再次产生中断。中断响应过程中断控制寄存器PIECTRL寄存器15~1PIEVECT表示PIE中断向量入口地址。0ENPIE使能PIE矢量。ENPIE=1从PIE中断向量表获取地址。ENPIE=0禁止从PIE中断向量表获取地址。PIEVECTENPIEPIEACK寄存器11~0PIEACK中断INT1-INT12应答控制位。写入1到对应中断位可清除该位,清除后当该组中断请求到来时,CPU允许并响应对应的PIE。RESERVEDPIEACKPIE标志位寄存器(PIEIFRx=1,12)外设中断标志位。每一位对应一个外设级中断。当某一外设产生中断时,相应标志位置1,中断被响应后,被清0INTx中断X指CPU级中断INT1-INT12。INTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INTx.107PIE中断使能寄存器(PIEIERx=1,12)外设中断使能控制位。每一位对应一个外设级中断。当某一外设产生中断时,相应标志位置1。当相应使能位被置1时,使能相应中断服务程序。设置为0时,中断响应被禁止。INTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INTx.107CPU级中断标志位寄存器(IFR)CPUIFR为CPU级中断标志位寄存器,用于辨别和清除中断挂起。向IFR写入1可清除中断标志位。CPU相应可屏蔽中断后,CPUIFR标志位自动清0,但相应外设寄存器的标志位需要用户软件清0。INT8INT7INT6INT5INT4INT3INT2INT107RTOSINTDLOGINTINT14INT13INT12INT11INT10INT9815CPU级中断使能寄存器(IER)CPUIER为CPU级可屏蔽中断使能寄存器,NMI和XRS不在其中。向IER写入1可使能中断。INT8INT7INT6INT5INT4INT3INT2INT107RTOSINTDLOGINTINT14INT13INT12INT11INT10INT9815头文件Piectrl.h中寄存器定义structPIE_CTRL_REGS{unionPIECTRL_REGPIECRTL;//PIEcontrolregisterunionPIEACK_REGPIEACK;//PIEacknowledgeunionPIEIER_REGPIEIER1;//PIEINT1IERregisterunionPIEIFR_REGPIEIFR1;//PIEINT1IFRregisterunionPIEIER_REGPIEIER2;//PIEINT2IERregisterunionPIEIFR_REGPIEIFR2;//PIEINT2IFRregister。。。。。。。。。。。。。。。unionPIEIER_REGPIEIER9;//PIEINT9IERregisterunionPIEIFR_REGPIEIFR9;//PIEINT9IFRregisterunionPIEIER_REGPIEIER10;//PIEINT10IERregisterunionPIEIFR_REGPIEIFR10;//PIEINT10IFRregisterunionPIEIER_REGPIEIER11;//PIEINT11IERregisterunionPIEIFR_REGPIEIFR11;//PIEINT11IFRregisterunionPIEIER_REGPIEIER12;//PIEINT12IERregisterunionPIEIFR_REGPIEIFR12;//PIEINT12IFRregister};PIECTRL定义structPIECTRL_BITS{Uint16ENPIE:1;//0EnablePIEblockUint16PIEVECT:15;//15:1Fetchedvectoraddress};unionPIECTRL_REG{Uint16all;structPIECTRL_BITSbit;};定义PIEIFR寄存器structPIEIFR_BITS{Uint16INTx1:1;//0INTx.1Uint16INTx2:1;//1INTx.Uint16INTx3:1;//2INTx.3Uint16INTx4:1;//3INTx.4Uint16INTx5:1;//4INTx.5Uint16INTx6:1;//5INTx.6Uint16INTx7:1;//6INTx.7Uint16INTx8:1;//7INTx.8Uint16rsvd:8;//15:8reserved};unionPIEIFR_REG{Uint16all;structPIEIFR_BITSbit;};中断设计举例voidInitPieCtrl(void){PieCtrl.PIECRTL.bit.ENPIE=0;0ENPIE使能PIE矢量。ENPIE=1从PIE中断向量表获取地址。ENPIE=0禁止从PIE中断向量表获取地址。//所有外设PIE中断使能位清0PieCtrl.PIEIER1.all=0;PieCtrl.PIEIER2.all=0;PieCtrl.PIEIER3.all=0;PieCtrl.PIEIER4.all=0;PieCtrl.PIEIER5.all=0;PieCtrl.PIEIER6.all=0;PieCtrl.PIEIER7.all=0;PieCtrl.PIEIER8.all=0;PieCtrl.PIEIER9.all=0;PieCtrl.PIEIER10.all=0;PieCtrl.PIEIER11.all=0;PieCtrl.PIEIER12.all=0;PIE标志位寄存器(PIEIFRx=1,12)外设中断标志位。每一位对应一个外设级中断。当某一外设产生中断时,相应标志位置1,中断被响应后,被清0INTx中断X指CPU级中断INT1-INT12。INTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INTx.107所有外设PIE中断标志位清0PieCtrl.PIEIFR1.all=0;PieCtrl.PIEIFR2.all=0;PieCtrl.PIEIFR3.all=0;PieCtrl.PIEIFR4.all=0;PieCtrl.PIEIFR5.all=0;PieCtrl.PIEIFR6.all=0;PieCtrl.PIEIFR7.all=0;PieCtrl.PIEIFR8.all=0;PieCtrl.PIEIFR9.all=0;PieCtrl.PIEIFR10.all=0;PieCtrl.PIEIFR11.all=0;PieCtrl.PIEIFR12.all=0;•PieCtrl.PIECRTL.bit.ENPIE=1;•PieCtrl.PIEACK.all=0xFFFF;PieCtrl.PIECRTL.bit.ENPIE=1;//××ENPIE=1从PIE中断向量表获取地址。××//PieCtrl.PIEACK.all=0xFFFF;//××××//写入1到对应中断位可清除该位,清除后当该组中断请求到来时,CPU允许并响应对应的PIE。}中断开放环节设定(以SPI接口通讯中断为例)PieCtrl.PIEIER6.bit.INTx1=1;//SPI的SPIRXINTA接收中断PIE使能PieCtrl.PIEIER6.bit.INTx2=1;//SPI的SPITXINTA发送中断PIE使能EALLOW;PieVectTable.SPIRXINTA=&SPIRXINTA_ISR;EDIS;/*设置IER寄存器*/IER|=M_INT6;EINT;//开中断

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功