概述在中断出现时,cpu要完成哪些步骤

作者&投稿:局壮 (若有异议请与网页底部的电邮联系)
什么是中断?中断发生时CPU做什么工作?~

CPU工作方法分为中断模式和查询模式.
查询模式就是说CPU轮翻的对外设顺序访问,比方说它先看看键盘有没被按下有的话处理,没的话继续往下看鼠标有没有移动再看看打印机印的怎么样了,再看...等等..显然查询方式的效率低.但稳定可靠.
中断模式时就是说CPU不主动访问这些设备,,只管处理自己的任务,没任务就闲着.也就是说在那等着.如果有设备要与CPU联系,或要CPU处理一些事情,他会给CPU发一个中断请求信号.一种情况是这时CPU就会放下正在进行的工作而去处理这个外设的要求.这叫做响应中断.处理完中断后,CPU返回去继续执行中断以前的工作.还有一种情况如果CPU这时正在做更重要的事情他就会让这个设备先在那等着.有空时响应他.如果同时有好几个设备都要CPU来处理,CPU就会从按重要程度来逐个处理.这就是中断和中断的优先级

 一般中断处理的主要步骤分别是中断请求、中断判优、中断响应、中断处理和中断返回。
  在微机系统中,对于外部中断,中断请求信号是由外部设备产生,并施加到CPU的NMI或INTR引脚上,CPU通过不断地检测NMI和INTR引脚信号来识 别是否有中断请求发生。对于内部中断,中断请求方式不需要外部施加信号激发,而是通过内部中断控制逻辑去调用。无论是外部中断还是内部中断,中断处理过程 都要经历以下步骤: 请求中断→响应中断→关闭中断→保留断点→中断源识别→保护现场→中断服务子程序→恢复现场→中断返回。

  请求中断
  当某一中断源需要CPU为其进行中断服务时,就输出中断请求信号,使中断控制系统的中断请求触发器置位,向CPU请求中断。系统要求中断请求信号一直保持到CPU对其进行中断响应为止。

  中断响应
  CPU对系统内部中断源提出的中断请求必须响应,而且自动取得中断服务子程序的入口地址,执行中断 服务子程序。对于外部中断,CPU在执行当前指令的最后一个时钟周期去查询INTR引脚,若查询到中断请求信号有效,同时在系统开中断(即IF=1)的情 况下,CPU向发出中断请求的外设回送一个低电平有效的中断应答信号,作为对中断请求INTR的应答,系统自动进入中断响应周期。

  关闭中断
  CPU响应中断后,输出中断响应信号,自动将状态标志寄存器FR或EFR的内容压入堆栈保护起来,然后将FR或EFR中的中断标志位IF与陷阱标志位TF清零,从而自动关闭外部硬件中断。因为CPU刚进入中断时要保护现场,主要涉及堆栈操作,此时不能再响应中断,否则将造成系统混乱。

  保护断点
  保护断点就是将CS和IP/EIP的当前内容压入堆栈保存,以便中断处理完毕后能返回被中断的原程序继续执行,这一过程也是由CPU自动完成。

  中断源识别
  当系统中有多个中断源时,一旦有中断请求,CPU必须确定是哪一个中断源提出的中断请求,并由中断控制器给出中断服务子程序的入口地址,装入CS与IP/EIP两个寄存器。CPU转入相应的中断服务子程序开始执行。

  保护现场
  主程序和中断服务子程序都要使用CPU内部寄存器等资源,为使中断处理程序不破坏主程序中寄存器的内容,应先将断点处各寄存器的内容压入堆栈保护起来,再进入的中断处理。现场保护是由用户使用PUSH指令来实现的。

  中断服务
  中断服务是执行中断的主体部分,不同的中断请求,有各自不同的中断服务内容,需要根据中断源所要完成的功能,事先编写相应的中断服务子程序存入内存,等待中断请求响应后调用执行。

  恢复现场
  当中断处理完毕后,用户通过POP指令将保存在堆栈中的各个寄存器的内容弹出,即恢复主程序断点处寄存器的原值。

  中断返回
  在中断服务子程序的最后要安排一条中断返回指令IRET,执行该指令,系统自动将堆栈内保存的 IP/EIP和CS值弹出,从而恢复主程序断点处的地址值,同时还自动恢复标志寄存器FR或EFR的内容,使CPU转到被中断的程序中继续执行。

一般中断处理的主要步骤分别是中断请求、中断判优、中断响应、中断处理和中断返回。
在微机系统中,对于外部中断,中断请求信号是由外部设备产生,并施加到CPU的NMI或INTR引脚上,CPU通过不断地检测NMI和INTR引脚信号来识别是否有中断请求发生。
对于内部中断,中断请求方式不需要外部施加信号激发,而是通过内部中断控制逻辑去调用。
无论是外部中断还是内部中断,中断处理过程都要经历以下步骤:请求中断→响应中断→关闭中断→保留断点→中断源识别→保护现场→中断服务子程序→恢复现场→中断返回。
请求中断
当某一中断源需要CPU为其进行中断服务时,就输出中断请求信号,使中断控制系统的中断请求触发器置位,向CPU请求中断。
系统要求中断请求信号一直保持到CPU对其进行中断响应为止。
中断响应
CPU对系统内部中断源提出的中断请求必须响应,而且自动取得中断服务子程序的入口地址,执行中断服务子程序。
对于外部中断,CPU在执行当前指令的最后一个时钟周期去查询INTR引脚,若查询到中断请求信号有效,同时在系统开中断(即IF=1)的情况下,CPU向发出中断请求的外设回送一个低电平有效的中断应答信号,作为对中断请求INTR的应答,系统自动进入中断响应周期。
关闭中断
CPU响应中断后,输出中断响应信号,自动将状态标志寄存器FR或EFR的内容压入堆栈保护起来,然后将FR或EFR中的中断标志位IF与陷阱标志位TF清零,从而自动关闭外部硬件中断。
因为CPU刚进入中断时要保护现场,主要涉及堆栈操作,此时不能再响应中断,否则将造成系统混乱。
保护断点
保护断点就是将CS和IP/EIP的当前内容压入堆栈保存,以便中断处理完毕后能返回被中断的原程序继续执行,这一过程也是由CPU自动完成。
中断源识别
当系统中有多个中断源时,一旦有中断请求,CPU必须确定是哪一个中断源提出的中断请求,并由中断控制器给出中断服务子程序的入口地址,装入CS与IP/EIP两个寄存器。
CPU转入相应的中断服务子程序开始执行。
保护现场
主程序和中断服务子程序都要使用CPU内部寄存器等资源,为使中断处理程序不破坏主程序中寄存器的内容,应先将断点处各寄存器的内容压入堆栈保护起来,再进入的中断处理。
现场保护是由用户使用PUSH指令来实现的。
中断服务
中断服务是执行中断的主体部分,不同的中断请求,有各自不同的中断服务内容,需要根据中断源所要完成的功能,事先编写相应的中断服务子程序存入内存,等待中断请求响应后调用执行。
恢复现场
当中断处理完毕后,用户通过POP指令将保存在堆栈中的各个寄存器的内容弹出,即恢复主程序断点处寄存器的原值。
中断返回
在中断服务子程序的最后要安排一条中断返回指令IRET,执行该指令,系统自动将堆栈内保存的IP/EIP和CS值弹出,从而恢复主程序断点处的地址值,同时还自动恢复标志寄存器FR或EFR的内容,使CPU转到被中断的程序中继续执行。


c语音中断程序运行不了 各位大侠帮我看看 到底问题出在哪里
Cannot open include file: 'XTToolkitPro.h': No such file or directory 这里编译器很明显的指出了可能的问题:你include的头文件: XTToolkitPro.h没有找到,include <XTToolkitPro.h>--这样指定的话,该文件时从你vc的options里设置头文件的地方去找的,确保有这个文件 include ”XTToolkitPro.h“--...

关于c语言中的break用法
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch 中的用法已在前面介绍开关语句时的例子中碰到。当break语句用于do-while、for、while循环语句中时,可使程序终止循环而...

中断的时候我把PC指针的内容赋给了一个变量。单片机c语言中如何跳到那个...
没听说过需要这么做的单片机,即使是操作系统也不这么压栈 而且,你存的那个PC值不就是你当前程序的位置吗?那有什么意义,又不是中断前的PC 中断前的PC已经在堆栈里面了,一般直接IRET就可以了 慢慢学习吧,这个问题太初级了 附:不知道你用的什么单片机,不过,一般的C语言里面没有IRET。C语言的...

C51单片机的中断操作,与直接在主函数内写入中断服务程序有什么区别...
当你的主程序很长的时候,把中断的操作写在主程序中不能快速的响应。例如一个外部中断在主程序的开头被触发,而你的中断操作放在主程序的结尾。而你的整个主程序的运行时间是10ms,那么你这个中断操作就延迟了10ms。如果放在中断服务程序中,不论何时发生中断,CPU将会跳到中断服务程序中去处理中断操...

在用c语言写单片机程序时 应该把什么写在中断什么写在主函数什么写在w...
这个问题很泛哦 把上电后只做一次的任务写到主函数里, 比如基本的初始化 把需要不断循环做的任务放到while(1)里,比如轮询,IO状态查询 把不知道什么时间会发生(比如外部中断,按键中断等)以及需要保证准时发生的任务(比如定时器时间到)放到中断里 ...

系统中断导致CPU使用率过高甚至达到100%,请问如何解决?最近一段时间...
DPC Latency Checker 这个小工具进行检查。延迟过程调用(DPC)与系统中断的处理相关, 当中断处理程序需要延迟一个低优先级的任务时,便会调用 DPC。通过实时音、视频流来分析当前系统是否能妥善处理内核态设备驱动的延迟,快速找出驱动问题的好帮手,而且无需安装,如果看到出现红条则表示有高延迟。

51的C语言中断是函数,那这个中断是否可以调用?如果能,怎么调用?
51的C语言中断是函数,那这个中断是否可以调用?如果能,怎么调用?只从计算机原理来讲,是可以的。理论上,中断函数也是一个程序的入口,只要把程序指令指针指向这个中断的入口地址,就可以执行相应的代码,从这个角度来讲,是可操作的。但在实际问题处理中,通常不行,因为中断是提供给系统处理应急事件的...

51单片机用c语言编程,按中断键开始,拨几号键置on,在对应的数码管上按3...
首先,我感觉你这个里面有很多错别字。回答如下:1,定时器中断就是为了,提供一个准确的时间,去触发单片机去做某一件事。2,你要设置一个350ms的时间:定时间设定50ms中断,可以设置一个标志位,每次进入中断,增加一。增加到7就清零。然后在主循环中查询这个标志位。50ms定时如下:void Timer0Init...

中断标志干什么用的?在c语言中怎么用?例如IEO?
TCON、IE、IP这3个是寄存器,IE0是TCON寄存器里面的其中一位,如果发生外部中断0,则IE0这个标志位就是1了。系统可以读取这个位来判定有没有中断发生。

ARM9中断中(C语言)如何实现复位功能,而不是返回中断前的状态
1,有些ARM处理器有复位寄存器,只要在中断函数里向复位寄存器写规定的数值就会产生复位。2,有些ARM处理器带看门狗WatchDog,只要在中断函数里启动软件狗,并且进入死循环不喂狗,看门狗会产生复位信号。3,上述硬件都没有ARM处理器,让硬件工程师加一个软件复位电路,可以用一个GPIO引脚触发复位的。然后在...

隆回县18399651283: 什么是中断?中断发生时cpu做什么工作? -
裴凤心纳: 中断是CPU响应外设需求的一种模式,在外设需要CPU时,会向中断控制器发送中断请求,这时CPU要保护现场,即把正在运行的程序保存起来,一般是把状态压入堆栈,然后读中断号,启动相应的中断服务程序,服务完成后,载入保护现场,即把堆栈的数据弹出,继续运行之前的程序.

隆回县18399651283: CPU在每次执行中断服务程序前后做哪些工作 急求谢谢了 说的专业点详细点 -
裴凤心纳: 详细的要看书.主要就是保护现场值,把各种状态字里的数据值推入到椎里.然后清空各主要寄存器,中断后就是上面说的反方向.

隆回县18399651283: 单片机中断响应cpu自主完成哪些操作这些操作对程序 -
裴凤心纳: 主程序候断操作写主程序能快速响应例外部断主程序触发断操作放主程序结尾整主程序运行间10ms断操作延迟10ms放断服务程序论何发断CPU跳断服务程序处理断操作单片机种并行操作式第二问题:P0口漏极路看看P0口内部结构图再用点点电路知识能析

隆回县18399651283: 中断周期前是什么阶段?中断周期后是什么阶段?在中断中期cpu应完成什么样的操作? -
裴凤心纳: 前:指令执行阶段后:取指令阶段cpu的操作:关中断,保存断点和转中断服务程序入口

隆回县18399651283: 中断响应cpu自主完成哪些操作这些操作对程序运行有 -
裴凤心纳: 1、 CPU占用率越高,说明该程序耗用的CPU资源就越多,如果CPU一直在100%运行,说明当前运行的程序很大,很繁杂,很可能超出了CPU的承载能力,这时候所运行的程序才会感觉卡,运行不够顺畅. 2、CPU长时间工作在100%时,会影响系统速度,机子会变慢,同时由于长时间CPU满载的话会带来大量热量,加速周边硬件老化. 3、如果没有开什么应用程序,CPU使用率就一直保持在100%,电脑很可能是中了蠕虫病毒或木马,需要杀毒. 4、假如偶尔CPU使用100%,那就很正常了,特别是配置比较低的电脑,在运行一些比较繁杂的工作时,如:图片渲染、杀毒、运行大型游戏软件等等时,会经常出现100%的现象.

隆回县18399651283: 当cpu接到中断要求时,在执行isr之前要做什么动作 -
裴凤心纳: 在微机系统中,对于外部中断,中断请求信号是由外部设备产生,并施加到CPU的NMI或INTR引脚上,CPU通过不断地检测NMI和INTR引脚信号来识 别是否有中断请求发生. 对于内部中断,中断请求方式不需要外部施加信号激发,而是通过内部中断控制逻辑去调用.无论是外部中断还是内部中断,中断处理过程 都要经历以下步骤:请求中断→响应中断→关闭中断→保留断点→中断源识别→保护现场→中断服务子程序→恢复现场→中断返回.

隆回县18399651283: 简述cpu响应中断的过程(简短点)在线等谢谢 -
裴凤心纳: 1.在cpu内部设置的中断请求触发器必须是开放的,sti指令开中断;cli指令关中断.2.外设有中断请求时,中断请求触发器必须处于“1”状态,保持中断请求信号.3.外设(接口)中断屏蔽触发器必须为“0”,这样才能把外设中断请求送至cpu.4.cpu在现行指令结束的最后一个状态周期.5.无dma请求.

隆回县18399651283: 结合8259A简述一次完整的中断过程! -
裴凤心纳: 一个完整的中断处理过程应该包括:中断请求、中断排队或中断判优、中断响应、中断处理和中断返回.1.中断请求:中断源向CPU发出中断请求信号.外部设备发出中断请求信号要具备以下两个条件:(1)外部设备的工作已经告一段落....

隆回县18399651283: 单片机的中断系统要完成哪些任务 -
裴凤心纳: 保存断点(将下中断时的PC指针值+1 压入堆栈),跳转到中断子程序入口. 执行完中断服务子程序后,返回断点(将堆栈中的地址弹出到PC指针中)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网