加载中…
个人资料
wjonuee
wjonuee
  • 博客等级:
  • 博客积分:0
  • 博客访问:5,116
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

中断处理过程

(2016-08-29 13:41:32)
标签:

嵌入式

中断处理过程

中断向量

中断嵌套

中断源

分类: 嵌入式

部分摘自:http://blog.tianya.cn/post-4429401-96312643-1.shtml


中断:所谓中断就是指CPU在正常执行程序的时候,由于内部/外部事件的出发、或由程序预先设定而引起CPU暂时中止当前正在执行的程序,保存被执行程序相关信息到栈中,转而去执行为内部/外部事件、或由程序预先设定的事件的中断服务子程序,待执行完中断服务子程序后,CPU再获取被保存在栈中被中断的程序的信息,继续执行被中断的程序,这一过程叫做中断。


中断向量:中断服务程序的入口地址。


中断向量表:把系统中所有的中断类型码及其对应的中断向量按一定的规律存放在一个区域内,这个存储区域就叫做中断向量表。


中断源:IA32中有三大类中断源:1、软中断/内中断。  2、外中断/硬件中断    3、异常

 

中断处理过程:

请求中断→响应中断→关闭中断→保留断点→中断源识别→保护现场→中断服务子程序→恢复现场→中断返回。

 中断处理过程


(1)某一中断源向CPU发起中断请求,对于外部中断CPU在当前指令最后一个时钟周期查询中断请求信号的有效    性,在系统开中断的情况下,CPU向中断源回送中断应答信号,系统进入中断响应周期。(CPU对系统内部

   中断源提出的中断请求必须响应,而且自动取得中断服务子程序的入口地址,执行中断服务子程序);

(2)CPU响应中断后,将状态标志寄存器压入堆栈保护;

(3)再将其中的中断标志位清除从而关闭中断

(4)CPU将当前CS(代码段地址)和IP(将要执行的下一条地址)压入堆栈保护断点

(5)CPU确定提出请求的中断源,获得中断向量号,在对应的中断向量表获得中断入口地址,装入CS和IP中;(6)将断点处各寄存器的内容压入堆栈保护现场

(7)此时程序跳转至中断服务子程序执行

(8)中断处理完毕,将堆栈各寄存器内容弹栈,恢复断点处各寄存器的值

(9)在中断服务子程序最后安排一条返回指令,执行该指令将堆栈中CS和IP的值弹出,恢复主程序断点处地址    值,同时恢复标志寄存器的内容。程序转至被中断的程序继续执行。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有