- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 中断和复位
中断申请: 由软件或硬件驱动的信号,可暂停目前执行的主程序,转而去执行一个中断服务子程序。软件——INTR/TRAP/OR IFR指令。硬件——某个引脚,一个外围设备或片内外设。
中断分类:▲ 可屏蔽中断:可用软件加以屏蔽或解除屏蔽。▲ 非屏蔽中断:这些中断不能够被屏蔽。C28x将立即响应该 种中断并转入相应的子程序 软件调用的中断都属于该类中断
处理中断过程: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。
几个重要的概念① 中断向量:等价于中断服务程序入口地址。② 中断向量号:按一定顺序(0,1,?,n)编排的序号称为中断向量号。 ③ 中断向量表:以中断向量号的顺序存放中断向量的一块连续的存储器空 间;或所有连续的中断向量地址和存放在其中的中断向量表构成中断向量表。④ 中断向量地址:中断向量所存放的存储器单元的地址。⑤ 中断向量号与中断向量地址关系:中断向量号为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和IDLESTAT。12.取回向量赋值给PC。13.执行中断服务程序。14.继续执行程序。
二 非屏蔽中断 C28x非屏
文档评论(0)