版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章中断管理和复位1第四章中断管理和复位1一、中断矢量二、可屏蔽中断三、非屏蔽中断四、非法指令陷阱五、复位操作六、低功耗模式七、片内外设的中断扩展第四章中断管理和复位第4章中断管理和复位2一、中断矢量第四章中断管理和复位第4章中断管理和复位中断分类:▲
可屏蔽中断:可用软件加以屏蔽或解除屏蔽。▲
非屏蔽中断:这些中断不能够被屏蔽。C28x将立即响应该种中断并转入相应的子程序去执行。所有用软件调用的中断都属于该类中断。中断申请:
由软件或硬件驱动的信号,可暂停目前执行的主程序,转而去执行一个中断服务子程序第4章中断管理和复位3中断分类:中断申请:由软件或硬件驱动的信号,可暂停目前执行处理中断过程:1.接收中断请求:由软件中断(从程序代码中)或者硬件中断(从一个引脚或一个基于芯片的设备)提出请求去暂停当前主程序的执行。2.响应中断:C28x必须能够响应中断请求。如果中断是可屏蔽的,则必须满足一定的条件,按照一定的顺序去进行测试。而对于非屏蔽硬件中断和软件中断,C28x会立即作出响应。3.准备执行中断服务程序并保存寄存器值。(1)完整地执行完当前指令,清除流水线中还没有到达第二阶段的所有指令。(2)将寄存器ST0、T、AH、AL、PH、PL、AR0、ARl、DP、STl、DBGSTAT、PC和IER的内容保存到堆栈中,以便自动保存主程序的大部分内容。(3)取回中断向量并把它放入程序寄存器PC中。4.执行中断服务子程序:C28x进入预先规定的向量地址,并且执行已写好的中断服务程序ISR。第4章中断管理和复位4处理中断过程:第4章中断管理和复位4▲
C28x支持32个中断向量,包括复位向量。每一向量是一个22位的地址,该地址是相应中断服务程序ISR的入口地址。每一个32位的向量被保存在一个连续地址中。见书中表4-1-1
▲中断向量地址的低16位保存该向量的低16位,高地址则保存它的高6位。当—个中断被确定后,其22位的向量被取回,而地址的高10位被忽略。
一、中断矢量
第4章中断管理和复位5▲C28x支持32个中断向量,包括复位向量。每一向量是一个▲向量表可以映像到程序空间的底部或顶部,这取决于状态寄存器STl的向量映像位VMAP,如果VMAP位是0,向量就映像在以000000h开始的地址上;如果其值是1,向量就映像到以3FFFC0h开始的地址上。▲
VMAP位可以由SETCVMAP指令进行置位,由CLRCVMAP指令进行复位。VMAP的复位值是1。一、中断矢量
第4章中断管理和复位6▲向量表可以映像到程序空间的底部或顶部,这取决于状态寄存器S▲
14个通用中断——INTl~INTl4为仿真而设计的中断——DLOGINT(数据标志中断)和TOSINT(实时操作系统中断)是。▲
中断寄存器:
√中断标志寄存器IFR——l6位寄存器IFR包含的标志位表明相应中断在等待CPU的确认。外部输入线INTl~INTl4在CPU的每—个时钟周期都被采样。如果识别出—个中断信号,IFR相应的位就被置位和锁存。DLOGINT或RTOSINT,CPU片内分析逻辑送来的信号使得相应标志位被设置和锁存。
√中断使能寄存器IER——包含的每一位为可屏蔽中断进行使能和关闭。
√调试中断使能寄存器DBGIER——包含的每一位为可屏蔽中断进行使能和关闭。表明了当CPU处于实时仿真模式时哪一个中断可以利用。二、可屏蔽中断
第4章中断管理和复位7▲14个通用中断——INTl~INTl4二、可屏蔽中断第▲
可屏蔽中断也利用状态寄存器STl的0位,即中断全局屏蔽位INTM,可用来进行全局使能中断和关闭中断。√当INTM=0时,这些中断全局使能;√当INTM=1时,这些中断全局关闭。▲
在IFR中一个标志关闭后,直到IER、DBGIER和INTM位被使能,否则相应的中断将不再响应。二、可屏蔽中断
第4章中断管理和复位8▲可屏蔽中断也利用状态寄存器STl的0位,即中断全局屏蔽位▲
为了识别未确认中断,可以利用指令PUSHIFR,然后测试堆栈的值。▲
运用ORIFR指令来设置IFR位,▲
利用指令ANDIFR,#0或硬件复位可以对所有的未决中断进行清0。注意:当通过指令TRAP发出中断请求时,如果IFR的相应位被置位,CPU并不会自动清除它。如果有一个应用请求,它的IFR已被清0,则必须在中断服务子程序中将相应位清0。中断标志寄存器(IFR)
二、可屏蔽中断
RTOSINT
D15D14D13D12D11D10D9D8INT14INT13INT12INT11INT10INT9
R/W-0
R/W-0R/W-0
R/W-0
R/W-0
R/W-0R/W-0R/W-0DLOGINTINT8
D7D6D5D4D3D2D1D0INT6INT5INT4INT3INT2INT1
R/W-0
R/W-0R/W-0
R/W-0
R/W-0
R/W-0R/W-0R/W-0INT7中断标志寄存器IFR第4章中断管理和复位9▲为了识别未确认中断,可以利用指令PUSHIFR,然后测▲若要使能中断,需要把它的相应位置1;▲若要关闭中断,应该清除它的相应位。▲可以使用指令MOV的两种语法对寄存器IER进行读和写。▲
ORIER指令可以用来设置IER位,▲
ANDIER指令可以用来清除IER位。注意:当执行ANDIER和ORIER指令时,应确保它们不会修改状态位15(RTOSINT),除非当前处于实时操作系统模式。
中断使能寄存器(IER)
二、可屏蔽中断
RTOSINT
D15D14D13D12D11D10D9D8INT14INT13INT12INT11INT10INT9
R/W-0
R/W-0R/W-0
R/W-0
R/W-0
R/W-0R/W-0R/W-0DLOGINTINT8
D7D6D5D4D3D2D1D0INT6INT5INT4INT3INT2INT1
R/W-0
R/W-0R/W-0
R/W-0
R/W-0
R/W-0R/W-0R/W-0INT7中断使能寄存器IER第4章中断管理和复位10▲若要使能中断,需要把它的相应位置1;中断使能寄存器(IER▲当CPU处于实时仿真模式下并暂停时,才可以使用DBGIER。▲可通过读DBGIER来识别使能或关闭中断,或通过写DBGIER来使能或关闭中断。▲用指令PUSHDBGIER对DBGIER进行读操作,▲用指令POPDBGIET对DBGIER进行写操作。▲在复位时,DBGIER的所有位被清0。调试中断使能寄存器DBGIER
二、可屏蔽中断
RTOSINT
D15D14D13D12D11D10D9D8INT14INT13INT12INT11INT10INT9
R/W-0
R/W-0R/W-0
R/W-0
R/W-0
R/W-0R/W-0R/W-0DLOGINTINT8
D7D6D5D4D3D2D1D0INT6INT5INT4INT3INT2INT1
R/W-0
R/W-0R/W-0
R/W-0
R/W-0
R/W-0R/W-0R/W-0INT7调试中断使能寄存器DBGIER第4章中断管理和复位11▲当CPU处于实时仿真模式下并暂停时,才可以使用DBGIER可屏蔽中断的标准操作二、可屏蔽中断
1.送往CPU的中断请求。2.设置相应的IFR标志位。3.当1)IER中的相应位是1;2)STl中的INTM位是0,确认中断;一旦一个中断被使能并且被CPU确认,则其他的中断就不能得到响应直到CPU开始执行中断服务程序,即中断响应的步骤13。4.清除相应的IFR位。5.清空流水线。6.增加和临时存储PC。7.取回中断向量。8.SP增1。9.执行自动上下文存储。10.清除相应的IER位。11.设置INTM和DBGM,清除LOOP、EALLOW和IDLESTAT。12.取回向量赋值给PC。13.执行中断服务程序。14.继续执行程序。
——中断处理的标准过程第4章中断管理和复位12可屏蔽中断的标准操作二、可屏蔽中断1.送往CPU的中断请求INTR指令三、非屏蔽中断
C28x非屏蔽中断包括:▲
软中断INTR和TRAP指令▲
硬件中断NMI▲
非法指令陷阱▲
硬件复位中断RS可以通过INTR指令用标号INTl~INTl4、DLOGINT、RTOSINT和NMI来对指令进行初始化。▲
INTl~INTl4、DLOGINT和RTOSINT。▲
NMI——一个非屏蔽中断,引脚上的硬件请求和用INTR指令引起的软件请求都会导致同样的事件发生。这些事件与执行TRAP指令时所发生的事件相同。第4章中断管理和复位13INTR指令三、非屏蔽中断C28x非屏蔽中断包括:可以通由TRAP指令对中断进行初始化的功能流程:1.取回TRAP指令。2.清空流水线。3.PC增1和临时存储PC。4.取回中断向量。5.SP增1。6.执行自动上下文存储。7.设置INTM和DBGM,清除LOOP、EALLOW和IDLESTAT。8.用取回的向量装载PC。9.执行中断服务程序。10.程序继续。TRAP指令三、非屏蔽中断
TRAP指令可初始化任何中断,包括用户定义的软件中断。TRAP指令与32个中断的任何一个中断有关。第4章中断管理和复位14由TRAP指令对中断进行初始化的功能流程:TRAP,非屏蔽硬件中断
NMI输入引脚CPU一旦在NMI引脚上检测到一个有效请求,就将按TRAP指令中所示的方式来处理。需要说明的是:尽管NMI不可以被屏蔽,但有一些调试执行状态是NMI所不能服务的。三、非屏蔽中断
第4章中断管理和复位15,非屏蔽硬件中断NMI输入引脚三、非屏蔽中断第4章中断▲
无效的指令被译码▲
操作码0000h被译码ITRAP0▲
操作码FFFFh被译码ITRAP1四、非法指令陷阱第4章中断管理和复位16▲无效的指令被译码四、非法指令陷阱第4章中断管理和复位▲
复位(RS=0)是优先级最高的中断,为非屏蔽外部中断▲
复位通常在电源打开之后被启动▲
每次复位之后必须重新初始化系统▲
作为硬件复位的一部分,所有当前操作均被放弃,流水线被清除▲
复位后CPU的寄存器按表4-5-1所示进行复位,然后RESET中断向量被取回,从而执行相应的中断服务程序。五、复位操作第4章中断管理和复位17▲复位(RS=0)是优先级最高的中断,为非屏蔽外部中断▲▲
IDLE模式:任何被使能的中断或NMI中断都可以使处理器退出IDLE模式。在这种模式下,如果LPMCR[1:0]位都设置成零,LPM模块将不完成任何工作。▲
HALT模式:只有复位XRS非和XNMI_XINT13外部信号能够唤醒器件,使其退出HALT模式。在XMNICR寄存器中,CPU有一位使能/禁止XNMI。▲
STANDBY模式:如果在LPMCRl寄存器中被选中,所有信号(包括XNMI)都能够将处理器从STANDBY模式唤醒,用户必须选择具体哪个信号唤醒处理器。在唤醒处理器之前,要通过OSCCLK确认被选定的信号:OSCCLK的周期数在LPMCR0寄存器当中确定。六、低功耗模式可使芯片核心部分进入休眠状态,耗散更少的功率。有三种模式:第4章中断管理和复位18▲IDLE模式:任何被使能的中断或NMI中断都可以使处理六、低功耗模式低功耗模式通过LPMCR0和LPMCRl两个寄存器来控制
CANRX
D15D14D13D12D11D10D9D8SCIRXAC6TRIPC5TRIPC4TRIPC3TRIPC2TRIPSCIRXBC1TRIP
D7D6D5D4D3D2D1D0T3CTRIPT2CTRIPT1CTRIPWDINTXNMIXINT1T4CTRIP低功耗方式控制1寄存器LPMCR1
保留
D15D1D0QUALSTDBYLPM低功耗方式控制0寄存器LPMCR0
R-0
R/W-1R/W-0
R/W-0
R/W-0R/W-0
R/W-0
R/W-0
R/W-0R/W-0R/W-0
R/W-0
R/W-0R/W-0
R/W-0
R/W-0
R/W-0R/W-0R/W-0第4章中断管理和复位19六、低功耗模式低功耗模式通过LPMCR0和LPMCRl两个寄▲
PIE:外设中断扩展模块(thePeripheralInterruptExpansionblock)把许多中断源多路复用成一个较小的中断输入集。▲
功能:PIE模块支持96个不同的中断,这些中断分成12个组,每个组有8个中断,每个组都被反馈到CPU内核的12条中断线(1NTl~INTl2)的一条上。这96个中断中的每一个都得到了各自向量的支持,这些向量被保存在专用RAM块中并可以进行修改。▲
在PIE块中可对每个中断分别使能或者使之无效。
七、片内外设的中断扩展第4章中断管理和复位20▲PIE:外设中断扩展模块(thePeripheral六、片内外设的中断扩展第4章中断管理和复位21六、片内外设的中断扩展第4章中断管理和复位21PIE控制器概述
七、片内外设的中断扩展▲
PIE向量(vector)表用来存储系统的各个中断服务子程序ISR的地址。▲所有多通道(MUXed)中断和非多通道(nonMUXed)中断中的每个中断都有一个向量。非多通道中断源由CPU直接提供。
▲在器件配置期间,用户要使用向量表并在操作期间去修改它。
第4章中断管理和复位22PIE控制器概述七、片内外设的中断扩展▲PIE向量(ve有多通道PIE中断操作序列的概况六、片内外设的中断扩展第4章中断管理和复位23有多通道PIE中断操作序列的概况六、片内外设的中断扩展第4六、片内外设的中断扩展▲
外设级:一个中断产生事件出现在某个外设中,和该事件相关的中断标志(IF)位会在这个特别外设的寄存器中被置为1。如果相应的中断使能(IE)位已经置位,则外设向PIE控制器产生一个中断请求。如果该中断在外设级使能无效,则相应的IF位会一直保持直到用软件清除它为止。如果在以后使能该中断,且中断标志仍然置位,那么就会向PIE发出一个中断请求。外设寄存器中的中断标志必须手工清除。PIE控制器概述
▲
PIE级:PIE块汇集了8个外设和外部引脚的中断进入1个CPU中断。这些中断被划分为12个组:PIE组1~PIE组12,1个组中的中断被多路汇集进入1个CPU中断。例如,PIE组1被多路汇集进入CPU中断INTl,而PIE组12被多路汇集进入CPU中断INTl2。与CPU剩余的中断相连接的中断源不是多路复用的。对于非多路复用的中断而言,PIE直接向CPU传送中断请求。对于多路复用的中断源,PIE块中的每个中断组都有一个相关标志位PIEIFRx.y和使能位PIEIERx.y。另外,每个中断组(1NT1~INTl2)都有一个应答位PIEACKx。第4章中断管理和复位24六、片内外设的中断扩展▲外设级:一个中断产生事件出现在某个▲
CPU级:一旦某个中断请求被送往CPU,CPU级中与INTx相关的中断标志(IFR)位就被置位。该标志位被锁存在IFR后,CPU不会马上就去执行相应的中断,而是等待CPU使能IER寄存器,或者使能DBGIER寄存器,并对全局中断屏蔽位INTM进行适当的使能。
六、片内外设的中断扩展PIE控制器概述
第4章中断管理和复位25▲CPU级:一旦某个中断请求被送往CPU,CPU级中与IN六、片内外设的中断扩展向量表映射
在C28x芯片上,中断向量表可以和存储器的五个不同位置相对应。实际上,F28x芯片只使用了PIE向量表映像。向量映像由下述方式位/信号控制。1.VMAP:该位是状态寄存器STl的位3。芯片复位将把该位置1。通过写STl或执行SETC/CLRCVMAP指令可以修改该位的状态。对于正常的F2812操作,可把该位设置为1。2.MOMlMAP:该位是状态寄存器ST1的位11。芯片复位将把该位置1。通过写STl或执行SETC/CLRCMOMlMAP指令可以修改该位的状态。对于正常的F2812操作,该位应该保持为1。MOMlMAP=0保留,仅用于TI测试。3.MP/MC:该位是XINTCNF2寄存器的位8。在有外部接口(XINTF)的芯片上,复位时,该位的默认值由XMP/MC输入信号设置。在没有XINTF的芯片上,在内部将XMP/MC拉为低电平。复位后,通过写XINTCNF2寄存器(地址:0x00000B34),可以修改该位状态。4.ENPIE:该位是寄存器PIECTRL的位0。复位时该位的默认值设为0(PIE无效)。复位后,通过写PIECTRL寄存器(地址:0x00000CE0),可以修改该位状态。第4章中断管理和复位26六、片内外设的中断扩展向量表映射在C28x芯片上,中断向量六、片内外设的中断扩展PIE控制器概述
▲
M1和M0向量表映像仅留作TI测试之用,当使用其他向量映像时,M0和M1存储器用作RAM块,可以自由使用,没有限制。芯片复位后,向量表映像如书中表所示。▲
在复位和程序引导完成之后,应该由用户对PIE向量表进行代码初始化,然后,由应用程序使能PIE向量表,从PIE向量表所指出的位置上取回中断向量。第4章中断管理和复位27六、片内外设的中断扩展PIE控制器概述▲M1和M0向量表六、片内外设的中断扩展中断源
第4章中断管理和复位28六、片内外设的中断扩展中第4章中断管理和复位28六、片内外设的中断扩展多通道中断处理过程
1.不要清除一个PIEIFR位。当读-修改-写操作发生时,一个已被录入的中断可能会丢失。清除相应的PIEIFR位,该未决的中断应该被服务。假如用户希望清除PIEIFR位,而不执行正常的服务子程序,则应按下列的过程:步骤1:设置EALLOW位,允许修改PIE向量表。步骤2:修改PIE向量表以便将外设服务子程序的向量指向一个临时ISR。这个临时ISR仅完成从中断操作的返回(IRET)。步骤3:使能该中断以便使该中断通过临时ISR得到服务。步骤4:在执行了临时中断服务子程序后,将清除PIEIFR的位。步骤5:修改PIE向量表重新将外设的服务子程序映像至适当的服务子程序。步骤6:清除EALLOW位。CPU的IFR寄存器在CPU中是整合的。因为清除CPUIFR寄存器中的位不会造成一个己录入的中断的丢失。2.软件—中断优先级。3.使用PIEIER禁止中断。使用PIEIER寄存器去使能一个中断,而后去禁止这个中断。
第4章中断管理和复位29六、片内外设的中断扩展多通道中断处理过程1.不要清除一个P六、片内外设的中断扩展使能和禁止多通道外设中断
使能或禁止一个中断的通常会产生下列两个过程。1.使用PIEIERx寄存器去禁止中断并保护相应的PIEIFRx标志。当清除PIEIERx寄存器中的位,保护PIEIFRx寄存器的相应位时,应按下列过程。步骤1:禁止全局中断(INTM=1)。步骤2:清除PIEIERx.y位去禁止一个给定的外设中断。可以对同组一个或多个外设这样去作。步骤3:等待5个周期。需要确保这个延时,任何录入CPU的中断均已经被标志在CPU的IFR寄存器中。步骤4:为外设组清除CPUIFRx位。这是对CPU的IFR寄存器的软件操作。步骤5:为外设组清除PIEACKx位。步骤6:使能全局中断(INTM=0)。第4章中断管理和复位30六、片内外设的中断扩展使能和禁止多通道外设中断使能或禁止一六、片内外设的中断扩展2.使用PIEIERx寄存器去禁止中断并清除相应的PIEIFRx标志。完成外设中断的软件复位并清除PIEIFRx寄存器和IFR寄存器中的相应标志,按下列过程。步骤1:禁止全局中断(1NTM=1)。步骤2:置位EALLOW位。步骤3:修改PIE向量表,将特有的外设中断暂时映像到—一个空的中断服务子程序ISR。这个空的ISR仅完成从中断指令的返回。在没有丢失来自其他外设组的任何中断的情况下,这是清除单个PIEIFRx.y位的一种安全途径。步骤4:禁止外设寄存器的外设中断。步骤5:使能全局中断(1NTM=0)。步骤6:通过空的ISR子程序为那些等待来自外设的未决中断服务。步骤7:禁止全局中断(1NTM=1)。步骤8:修改PIE向量表,将外设向量映像到它最初的ISR。步骤9:清除EALLOW位。步骤10:禁止给定外设的PIEIER位。步骤11:清除给定外设组的IFR位(这是对CPUIFR寄存器的安全操作)。步骤12:清除PIE组的PIEACK位。步骤13:使能全局中断。
使能和禁止多通道外设中断
第4章中断管理和复位31六、片内外设的中断扩展2.使用PIEIERx寄存器去禁止中断从外设到CPU的多通道中断请求流程第4章中断管理和复位32从外设到CPU的多通道中断请求流程第4章中断管理和复位3六、片内外设的中断扩展步骤1:任何PIE组里的外设和外部中断产生一个中断,假如外设中断已被使能,那么,该中断要求就被置入PIE模块。步骤2:PIE模块识别PIE组x内已经录入的中断y(INTx.y),并且将相应的PIE中断标志位锁存:PIEIFRx.y=1。步骤3:为了置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 亚健康状态问诊服务话术操作手册
- 水肥一体化精准操作指引
- 复购率提升执行方案
- 十字花科蔬菜菜青虫绿色防控
- 危险作业安全技能提升培训
- 废气污染物达标排放方案
- 康养师团队绩效考核管理制度
- 体重管理评估实施标准
- 门店环境消毒灭菌操作标准
- 蔬菜白粉病绿色防控技术规范
- 2026广东省广州水投集团校园招聘备考题库及参考答案详解
- 2026年山东省淄博市博山区中考(一模)英语试题 含答案
- 2026中国职工保险互助会宁夏办事处招聘工作人员5人笔试参考题库及答案解析
- 2026年血液中心血液采集岗面试高频问题集
- 2026年4月自考07816公共行政学试题
- (2025年)健康教育与健康促进(副高)考试高频考点试题含答案
- 品质通病防治手册( 公路桥梁篇 )(可编辑版)
- DB32/T 4338-2022高速公路桥梁支座安装施工技术规范
- 新青岛版-二年级下册数学-口算题
- 2024年福建省莆田市初中毕业班质量检查二模英语试卷
- 十大零容忍培训
评论
0/150
提交评论