文档库

最新最全的文档下载
当前位置:文档库 > DSP第四五章复习资料

DSP第四五章复习资料

第四章中断和复位

中断申请: 由软件或硬件驱动的信号,可暂停目前执行的主程序,转而去执行一个中断服务子程序。软件——INTR/TRAP/OR IFR指令。硬件——某个引脚,一个外围设备或片内外设。

中断分类:▲可屏蔽中断:可用软件加以屏蔽或解除屏蔽。▲非屏蔽中断:这些中断不能够被屏蔽。C28x将立即响应该种中断并转入相应的子程序软件调用的中断都属于该类中断

处理中断过程:1.接收中断请求:由软件中断(从程序代码中)或者硬件中断(从一个引脚或一个基于芯片的设备)提出请求去暂停当前主程序的执行。2.响应中断:C28x必须能够响应中断请求。如果中断是可屏蔽的,则必须满足一定的条件,按照一定的顺序去进行测试。而对于非屏蔽硬件中断和软件中断,C28x会立即作出响应。3.准备执行中断服务程序并保存寄存器值。(1)完整地执行完当前指令,清除流水线中还没有到达第二阶段的所有指令。(2)将寄存器ST0、T、AH、AL、PH、PL、AR0、ARl、DP、STl、DBGSTA T、PC和IER的内容保存到堆栈中,以便自动保存主程序的大部分内容。(3)取回中断向量并把它放入程序寄存器PC中。4.执行中断服务子程序:C28x进入预先规定的向量地址,并且执行已写好的中断服务程序ISR。

几个重要的概念①中断向量:等价于中断服务程序入口地址。②中断向量号:按一定顺序(0,1n)编排的序号称为中断向量号。③中断向量表:以中断向量号的顺序存放中断向量的一块连续的存储器空间;或所有连续的中断向量地址和存放在其中的中断向量表构成中断向量表。④中断向量地址:中断向量所存放的存储器单元的地址。⑤中断向量号与中断向量地址关系:中断向量号为n的中断向量地址= 中断向量号为0的中断向量地址道+(中断向量号n)*2 (每个中断向量占2个存储单

中断矢量:▲向量表可以映像到程序空间的底部或顶部。STl的VMAP位是0,向量在以000000h开始的地址上;STl的VMAP位是1,向量在以3FFFC0h开始的地址上。▲VMAP位由SETC VMAP指令置位,由CLR CVMAP指令复位。▲VMAP的复位值是1。▲向量表可以映像到程序空间的底部或顶部。STl的VMAP位是0,向量在以000000h开始的地址上;STl的VMAP 位是1,向量在以3FFFC0h开始的地址上。▲VMAP位由SETC VMAP指令置位,由CLR CVMAP指令复位。▲VMAP的复位值是1。

一可屏蔽中断:▲可屏蔽中断利用STl的INTM 位,即中断全局屏蔽位,进行全局使能中断和关闭中断。√当INTM=0时,这些中断全局使能;√当INTM=1时,这些中断全局关闭。▲在IFR中一个标志关闭后,直到IER、DBGIER和INTM位被使能,否则相应的中断将不再响应。▲为了识别未确认中断,可利用PUSH IFR,然后测试堆栈的值。▲运用OR IFR指令来设置IFR位,▲利用指令AND IFR,#0或硬件复位可对未决中断进行清0。注意:当通过指令TRAP发出中断请求时,如果IFR的相应位被置位,CPU并不会自动清除它。如果有一个应用请求,它的IFR已被清0,则必须在中断服务子程序中将相应位清0。

中断使能寄存器(IER)▲若要使能中断,需要把它的相应位置1;若要关闭中断,应该清除它的相应位。▲可以使用指令MOV的两种语法对寄存器IER进行读和写。OR IER用来设置IER位,AND IER用来清除IER位。注意:当执行AND IER和OR IER时,应确保不会修改状态位15(RTOSINT),除非当前处于实时操作系统模式。

调试中断使能寄存器DBGIER▲当CPU处于实时仿真模式下并暂停时,才可用DBGIER。▲可通过读DBGIER来识别使能或关闭中断,或通过写DBGIER来使能或关闭中断。▲用PUSH DBGIER对DBGIER进行读操作,用POP DBGIET对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和IDLESTA T。12.取回向量赋值给PC。13.执行中断服务程序。14.继续执行程序。

二非屏蔽中断C28x非屏蔽中断包括:▲软中断INTR和TRAP指令▲硬件中断NMI▲非法指令陷阱▲硬件复位中断RS

INTR指令可以通过INTR指令用标号INTl~INTl4、DLOGINT、RTOSINT和NMI来对指令进行初始化。▲INTR INTl ——表示执行INT1的中断服务程序。▲NMI——一个非屏蔽中断,引脚上的硬件请求和用INTR指令引起的软件请求都会导致同样的事件发生。这些事件与执行TRAP指令中所发生的事件相同。TRAP指令▲TRAP指令可初始化任何中断,包括用户定义的软件中断。▲TRAP指令与32个中断的任何一个中断有关。▲TRAP #1——表示执行INT1的中断服务程序。由TRAP指令对中断进行初始化的功能流程1.取回TRAP指令。2.清空流水线。3.PC增1和临时存储PC。4.取回中断向量。5.SP增1。6. 执行自动上下文存储。7.设置INTM和DBGM,清除LOOP、EALLOW和IDLESTA T。8.用取回的向量装载PC。9.执行中断服务程序。10.程序继续。

三非屏蔽硬件中断NMI输入引脚▲CPU一旦在NMI引脚上检测到一个低电平有效请求,就将按TRAP指令中所示的方式来处理。▲尽管NMI不可以被屏蔽,但有一些调试执行状态是NMI 所不能服务的。NMI、INTR和TRAP的异同▲NMI是引脚上的硬件请求,它和INTR软件请求导致同样的事件发生,也和执行TRAP指令发生的事件相同。▲指令形式不同: INTR INT1; TRAP #1。▲INTR 引起的中断,相应的IFR位不会置1。在其它方面又和硬件请求有相同之处,如中断过程中会清除IFR中相应的位。▲TRAP指令不受IFR/IER/DBGIER中各位的影响,也不影响它们的各位。▲TRAP #0并不能对完全复位进行初始化,只是强制执行与RESET中断向量相应的中断服务

四复位操作▲复位(RS=0)是优先级最高的中断,为非屏蔽外部中断▲复位通常在电源打开之后被启动▲每次复位之后必须重新初始化系统▲所有当前操作均被放弃,流水线被清除▲复位后CPU寄存器按P100表所示进行复位,然后RESET中断向量被取回,从而执行相应的中断服务程序。▲复位操作时,对下述几个部分进行工作:√控制部分√存储器和I/O空间√片内外设√总线

五低功耗模式使芯片核心部分进入休眠状态,耗散更少的功率。▲空闲IDLE模式:任何被使能的中断或NMI中断都可使处理器退出IDLE模式。该模式下,如果LPMCR[1:0]位都设置成零,LPM模块将不完成任何工作。▲暂停HALT模式:只有复位XRS和XNMI外部信号能够使其退出HALT模式。在XMNICR寄存器中,CPU有一位使能/禁止XNMI 。▲备用STANDBY模式:通过选择LPMCR1,所有信号都能将处理器唤醒。用户必须选择具体哪个信号唤醒处理器。在唤醒处理器之前,要通过OSCCLK确认被选定的信号:OSCCLK的周期数在LPMCR0寄存器当中确定。低功耗模式通过LPMCR0和LPMCRl两个寄存器来控制

六、片内外设的中断扩展▲PIE:外设中断扩展模块(the Peripheral Interrupt Expansion block)把许多中断源多路复用成一个较小的中断输入集。▲功能:PIE模块支持96个不同的中断,它们分成12个组,每组有8个中断,每组都被反馈到CPU内核的12条中断线(1NTl~INTl2)的一条上。96个中断的每一个都得到了各自向量的支持,这些向量被保存在专用RAM块中并可进行修改。▲在PIE块中可对每个中断分别使能或者使之无效。PIE控制器概述▲PIE向量(vector)表:用来存储系统的各个中断服务子程序ISR的地址。▲所有多通道(MUXed)中断和非多

免费下载Word文档免费下载: DSP第四五章复习资料

(共4页)