2-7 多中断的响应与处理

中断屏蔽

?当计算机检测到中断时, 中断装置通过中断屏蔽位决定是否响应已发生的中断

?有选择的响应中断

中断优先级

?当计算机同时检测到多个中断时, 中断装置

响应中断的顺序

?有优先度的响应中断

?一种可能的处理次序:

处理机硬件故障中断事件、自愿性中断事件、程序性中断事件、时钟中断等外部中断事件、输入输出中断事件、重启动和关机中断事件?不同类型的操作系统有不同的中断优先级

中断的嵌套处理

?当计算机响应中断后,在中断处理过程中,可以再响应其他中断

?操作系统是性能攸关程序系统,且中断响应处理有硬件要求,考虑系统效率和实现代价问题,中断的嵌套处理应限制在一定层数内,如3层

?中断的嵌套处理改变中断处理次序,先响应的有可能后处理

多中断的响应与处理

?决定中断处理次序的因素

?中断屏蔽可以使中断装置不响应某些中断?中断优先级决定了中断装置响应中断的次

?中断可以嵌套处理, 但嵌套的层数应有限制?中断的嵌套处理改变了中断处理的次序

多重中断处理-1

?X、Y两个中断同时

发生

?先响应X

?因Y被屏蔽,继续处理X

?再响应并处理Y

多重中断处理-2

?X、Y两个中断同时

发生

?根据中断优先级,

先响应X

?因未屏蔽Y,再响应并处理Y

?Y处理完成后,再处理X

中断服务程序流程图

第一讲: 第六章I/O接口原理-接口、端口、编址 回顾:微机系统的层次结构,CPU、主机、接口电路及外部设备之间的结构关联,输入/输出的一般概念。 重点和纲要:微机系统主机与外部设备之间的数据传送,包括I/O端口的寻址方式,输入/输出的传送控制方式。 讲授内容: 6. 1 输入/输出数据的传输控制方式 一、输入/输出的一般概念 1.引言 输入/输出是微机系统与外部设备进行信息交换的过程。输入/输出设备称为外部设备,与存储器相比,外部设备有其本身的特点,存储器较为标准,而外部设备则比较复杂,性能的离散性比较大,不同的外部设备,其结构方式不同,有机械式、电动式、电子式等;输入/输出的信号类型也不相同,有数字信号,也有模拟信号;有电信号,也有非电信号;输入/输出信息的速率也相差很大。因此,CPU与外部设备之间的信息交换技术比较复杂。 CPU与外设之间的信息交换,是通过它们之间接口电路中的I/O端口来进行的,由于同一个外部设备与CPU之间所要传送的信息类型不同,方向不同,作用也不一样(例如数据信息、状态信息、控制信息、输入/输出等),所以接口电路中可以设置多个端口来分别处理这些不同的信息。 2.输入/输出端口的寻址方式 微机系统采用总线结构形式,即通过一组总线来连接组成系统的各个功能部件(包括CPU、内存、I/O端口),CPU、内存、I/O端口之间的信息交换都是通过总线来进行的,如何区分不同的内存单元和I/O端口,是输入/输出寻址方式所要讨论解决的问题。

根据微机系统的不同,输入/输出的寻址方式通常有两种形式:(1).存储器对应的输入、输出寻址方式 这种方式又称为存储器统一编址寻址方式或存储器映象寻址方式。 方法:把外设的一个端口与存储器的一个单元作同等对待,每一个I/O端口都有一个确定的端口地址,CPU与I/O端口之间的信息交换,与存储单元的读写过程一样,内存单元与I/O端口的不同,只在于它们具有不同的的地址。优点: ①CPU对I/O端口的读/写操作可以使用全部存储器的读/写操作指令,也可 以用对存储器的不同寻址方式来对I/O端口中的信息,直接进行算术、逻辑运算及循环、移位等操作。 ②内存与外设地址的分配,可以用统一的分布图。 ③不需要专门的输入、输出操作指令。 缺点: ①内存与I/O端口统一编址时,在地址总线根数一定的情况下,使系统中 实际可以直 接寻址的内存单元数减少。 ②一般情况下,系统中I/O端口数远小于内存单元数,所以在用直接寻址方 式来寻址这些端口时,要表示一个端口地址,必须用与表示内存单元地址相同的字节数,使得指令代码较长,相应地读/写执行时间也较长,这对提高系统的运行速度是不利的。 Mortorola公司的M6800CPU等均采用这种寻址I/O端口的方式。 3. CPU与外设之间所传送的信息类型 CPU与I/O端口之间所交换的信息,可以有下列几种类型: ①数据信息:包括数字量、模拟量、开关量等,可以输入、也可以输出 ②状态信息:这是I/O端口送给CPU的有关本端口所对应的外设当前状态 的信息。供CPU进行分析、判断、决策。 ③控制信息:这是CPU送给I/O端口的控制命令,使相应的外部设备完成 特定的操作。 数据信息、状态信息和控制信息是不同类型的信息,它们所起的作用也不一样。但在8086/8088微机系统中,这三种不同类型的信息的输入、输出过程是相同的。为了加以区分,可以使它们具有不同的端口地址,在端口地址相同的情况下,可以规定操作的顺序,或者在输入/输出的数据中设置特征位。

微机简答题

1、简述8086CPU总线接口部件(BIU)的功能及其组成。 总线接口部件的功能是负责与存储器、I/O端口传送数据,即BIU管理在存储器中存取程序和数据的实际处理过程。它主要由以下几部分构成: 1.4个段地址寄存器。即CS DS ES SS。 2.16位的指令指针寄存器IP。 3.20位的地址加法器。 4.6字节的指令队列。 2. 8086CPU内部由哪两部分组成?各完成什么工作? 答:在8086内部由BIU和EU两大部分组成,BIU主要负责和总线打交道,用于CPU与存储器和I/O接口之间进行数据交换;EU主要是将从指令队列中取得的指令加以执行。 3. 什么是I/O独立编址和统一编址,各有什么特点? 答:独立编址是将I/O端口单独编排地址,独立于存储器地址。 统一编址是将I/O端口与存储器地址统一编排,共享一个地址空间。 端口独立编址方式,处理器除要具有存储器访问的指令和引脚外,还需要设计I/O访问的I/O指令和I/O引脚,其优点是:不占用存储器空间;I/O指令使程序中I/O操作一目了然;较小的I/O地址空间使地址译码简单。但I/O指令功能简单,寻址方式没有存储器指令丰富。 统一编址方式,处理器不再区分I/O口访问和存储器访问。其优点是:处理器不用设计I/O指令和引脚,丰富的存储器访问方法同样能够运用于I/O访问。缺点是:I/O端口会占用存储器的部分地址空间,通过指令不易辨认I/O操作。4.简述主机与外设进行数据交换的几种常用方式。 答: ①无条件传送方式,常用于简单设备,处理器认为它们总是处于就绪状态,随时进行数据传送。 ②程序查询方式:处理器首先查询外设工作状态,在外设就绪时进行数据传送。 ③中断方式:外设在准备就绪的条件下通过请求引脚信号,主动向处理器提出交换数据的请求。处理器无其他更紧迫任务,则执行中断服务程序完成一次数据传送。 ④ DMA传送: DMA控制器可接管总线,作为总线的主控设备,通过系统总线来

ARM中异常中断处理概述

异常中断处理概述 1.ARM中异常中断处理概述 1)在正常程序执行过程中,每执行一条ARM指令,程序计数器寄存器PC的值加4个字 节;每执行一条Thumb指令,程序计数器寄存器PC的值加两个字节.整个过程是顺序执行. 2)通过跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处 执行; B指令用于执行跳转操作; BL指令在执行跳转操作的同时,保存子程序的返回地址; BX指令在执行跳转操作的同时,根据目标地址的最低位可以将程序状态切换到Thumb状态; BLX指令执行3个操作:跳转到目标地址处执行,保存子程序的返回地址(R15保存在R14中),根据目标地址的最低位可以将程序状态切换到Thumb状态. 3)当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执 行.在当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行. 4)在进入异常中断处理程序时,要保存被中断的程序的执行现场,在从异常中断处理程 序退出时,要恢复被中断的程序的执行现场.本章讨论ARM体系中的异常中断机制. 2.ARM体系中异常中断种类. ARM体系中的异常中断如下表所示:

3. 中断向量表中指定了各异常中断及其处理程序的对应关系.它通常存放在存储地址的低端.在ARM体系中,异常中断向量表的大小为32字节.其中,每个异常中断占据4个字节大小,保留了4个字节空间. 每个异常中断对应的中断向量表的4 .通过这两种指令,程序将跳转到相应的异常中断处理程序处执行. 当几个异常中断同时发生时,就必须按照一定的次序来处理这些异常中断.在ARM 中通过给各异常中断富裕一定的优先级来实现这种处理次序.当然有些异常中断是不坑能同时发生的,如指令预取中止异常中断和软件中断(SWI)异常中断是有同一条指令的执行触发的,他们是不可能同时发生的.处理器执行某个特定的异常中断的过程中,称为处理器处于特定的中断模式.各异常中断的中断向量地址以及中断的处理优先级如表2所示. 4.异常中断使用的寄存器 各异常中断对应着一定的处理器模式.应用程序通常运行在用户模式下.ARM中的处理器模式如表3所示. 各种不同的处理器模式可能有对应于该处理器模式的物理寄存器组,如表4所示,其中,R13_svc表示特权模式下的R13寄存器,R13_abt表示中止模式下的R13寄存器,其余的各寄存器名称含义类推. 表4 各处理器模式的物理寄存器组

8259选择题

1、8086/8088CPU的可屏蔽中断请求信号INTR为(A)有效 A、高电平 B、低电平 C、上升沿 D、下降沿 2、8086/8088CPU的非屏蔽中断请求信号NMI为(C)有效 A、高电平 B、低电平 C、上升沿 D、下降沿 3、8086/8088CPU响应可屏蔽中断的条件是(D) A、IF=0 TF=0 B、IF=1 TF=1 C、IF=0 TF无关 D、IF=1 TF无关 4、响应INTR请求不是必要条件的为(B) A、IF=1 B、IF=0 C、无DMA请求 D、无NMI请求 5、IBM PC/XT机开机后,中断向量表存放在(D) A、ROM地址高端 B、ROM地址低端 C、RAM地址高端 D、RAM地址低端 6、8086/8088的中断向量表(B) A、用于存放中断类型码 B、用于存放中断服务程序入口地址 C、是中断服务程序的入口 D、是断点 7、可屏蔽中断类型号为32H,则它的中断向量应存放在以(C)开始的4字节单元中 A、00032H B、00128H C、000C8H D、00320H 8、8253/8254为可编程定时/计数器,其占有(B)个口地址 A、1 B、2 C、3 D、4 9、8086/8088CPU中断系统的中断优先级的顺序为(D) A、可屏蔽中断,非屏蔽中断,内部中断 B、非屏蔽中断,可屏蔽中断,内部中断 C、内部中断,可屏蔽中断,非屏蔽中断 D、内部中断,非屏蔽中断,可屏蔽中断 10、CPU可访问8259A的端口地址数为(B) A、1个 B、2个 C、4个 D、8个 11、外设46个中断源,至少需用(B)片8259A管理 A、6片 B、7片 C、8片 D、46片 12、若8259A工作在电平触发,单片使用,写ICW4,则初始化命令字ICW1的值为(B) A、11H B、1BH C、13H D、1DH 13、8259A的中断屏蔽字OCW1在程序运行中(C)设置 A、在设置ICW后 B、只允许一次 C、可允许多次 D、仅屏蔽某中断源时 14、若8259A的初始化命令字ICW2的值为2AH,说明8259A8个中断源IR0~IR7所定义中断类型号为(B) A、2AH~32H B、28H~2FH C、22H~2AH D、A8H~AFH 15、8259A工作在8086/8088模式时,初始化命令字ICW2用来设置(D) A、中断向量的高8位 B、中断类型码的低8位 C、中断向量的高5位 D、中断类型码的高5位 16、某8259A系统中,需对IR7、IR3进行屏蔽,则应将操作命令字OCW1置为(D) A、73H B、37H C、88H D、77H 17、8259A的中断屏蔽寄存器为(B) A、IRR B、IMR C、ISR D、PR 18、8259A的中断服务寄存器为(C) A、IRR B、IMR C、ISR D、PR 19、8259A的中断请求寄存器为(A) A、IRR B、IMR C、ISR D、PR

STM32中断过程详解

STM32中断过程详解 对于 STM32 讲(还是以Timer2例),外部中断通道位置 28(35 号优先级)是给外部设备 TIME2 的,但 TIME2本身能够引起中断的中断源或事件有好多个,比如更新事件(上溢/下溢)、输入捕获、输出匹配、DMA 申请等。所有TIME2 的中断事件都是通过一个 TIME2 的中断通道向 STM32 内核提出中断申请,那么 STM32 中如何处理和控制 TIME2 和它众多的、不同的、中断申请呢? 1.因为cortex_m3 内核对于每一个外部中断通道都有相应的控制字和控制位,用于单独的和总的控制该中断通道。它们包括有: 中断优先级控制字:PRI_n(前面有提到过) 中断允许设置位:在 ISER 寄存器中 中断允许清除位:在 ICER 寄存器中 中断悬挂 Pending(排队等待)位置位:在 ISPR 寄存器中(类似于置中断通道标志位)中断悬挂 Pending(排队等待)位清除:在 ICPR 寄存器中(用于清除中断通道标志位)正在被服务(活动)的中断(Active)标志位:在 IABR 寄存器中,(只读,可以知道当前内核正在处理哪个中断通道) 2.作为外围设备 TIME2 本身也包括更具体的,管理自己不同中断的中断控制器(位),它们主要是自身各个不同类型中断的允许控制位,和各自相应的中断标志位(STM32 的手册中有详细的说明)。 理解上面两点之后,我们可以全程、全面和综合的来了解 TIME2 的中断过程,以及如何控制的。 ①初始化过程 首先要设置寄存器 AIRC 中 PRIGROUP 的值,规定系统中的抢先优先级和子优先级的个数(在 4 个 bits 中占用的位数); 设置 TIME2 本身的寄存器,允许相应的中断,如允许 UIE(TIME2_DIER 的第[0]位)

利用中断屏蔽技术修改中断优先级

利用中断屏蔽技术修改中断优先级 摘要:在现代计算机系统中,中断系统不只是I/O系统,也是整个计算机系统必不可少的重要组成部分。中断响应的次序是固定的,中断处理的次序可以与之保持一致,也可通过修改屏蔽字来灵活地改变,文章针对三种典型的问题,提出解决思路和方法,阐述利用中断屏蔽技术修改中断优先级。 关键词:中断级屏蔽位;中断响应;中断处理 当CPU与外设交换信息时,如果采用查询的方式,则CPU要浪费很多时间去等待外设,为了解决快速CPU与慢速外设之间的矛盾,一方面提高外设的工作速度,另一方面发展了中断的概念。中断概念的出现,是计算机系统结构设计中的一个重大变革。中断是指CPU终止正在执行的程序,转去处理随机提出的请求,待处理完后,再回到原先被打断的程序继续恢复执行的过程。响应和处理各种中断的软、硬件总体称为中断系统。中断系统是整个计算机系统必不可少的重要组成部分。它对程序的监视和跟踪、人机联系、故障处理、多道程序和分时处理、实时处理、目态程序和操作系统的联系、I/O处理以及多处理机系统中各机的联系等都起着重要的作用。中断响应的次序是固定的,中断处理的次序可以与之保持一致,也可通过修改屏蔽字来灵活地改变,文章针对三种典型的问题,提出解决思路和方法,阐述利用中断屏蔽技术修改中断优先级。 1 确定中断屏蔽字 引起中断的各种事件称为中断源。在中、大型计算机系统中,中断源个数多达几十甚至几百个,为每个中断源单独形成入口,显然很困难,也没有这种必要,为简化中断处理程序入口地址形成硬件,将中断源归成几类,每一类中各中断源性质比较接近,对每一类给定一个中断处理程序入口,再由软件转入对相应的中断源进行处理。中断的特点是具有随机性,常常会同时发生多个中断请求,为解决这个问题,需要根据中断的性质、紧迫性、重要性以及软件处理的方便性把中断分成不同的级别,按照优先次序进行响应和处理。在现代计算机系统中,中断优先级一般是由硬件的排队器实现的,因此,当有多个中断源同时请求中断服务时,中断响应次序的高低是固定死的。处理机在执行某一个级别的中断源的中断服务程序时,较之同级的或低级的中断请求不能中断其处理,只有较之高级的中断请求可以中断其处理。为了能由操作系统灵活改变实际的中断处理次序,设置了中断级屏蔽位寄存器,以决定某级中断请求能否进入中断响应排队器,只有能进入排队器的中断请求,才有机会得到响应,从而就可改变中断实际处理完的次序,PSW中包含有中断级屏蔽位字段。因此,引出了第一种典型的问题:给定中断响应次序和希望的中断处理次序,怎么确定各级中断的屏蔽字,方法是:某级中断的屏蔽字中,自身及处理次序较之低的各级中断需要屏蔽。需要特别注意的是,有关中断级屏蔽位“0”、“1”是屏蔽还是“开放”中断,不同机器有着不同的定义,不要将“0”、“1”的含义搞反了。现举例说明,假设机器有5级中断,中断响应优先次序为1→2→3→4→5,令”0”对应于屏蔽,“1”对应于开放,若希望中断处理次序也为1→2→3→4→5,则只需将各级中断处理程序的中断级屏蔽位设置成如表1所示的即可。

中断习题和参考题参考答案(课后)

中断习题和参考题 1、什么是中断向量?中断向量表是什么?非屏蔽中断的类型为多少?8086 中断系统优先级顺序怎样? ①所谓中断响量,实际上就是中断处理子程序的入口地址,每个中断类型对应一个中断响量 ②中断向量按照中断类型的顺序在内存0段0单元开始有规则排列的一张表 ③类型02H ④内部中断>非屏蔽中断>可屏蔽中断>单步中断 2、8259的全嵌套和特殊全嵌套方式有何异同?优先级自动循环是什么?什么特殊屏蔽方式?如何设置成该方式? ①全嵌套方式是8259A最常用的工作方式,只有在单片情况下,在全嵌套方式中,中断请求按优先级0-7进行处理,0级中断的优先级最高。特殊全嵌套方式和全嵌套方式基本相同,只有一点不同,就是在特殊全嵌套方式下,还可满足同级中断打断同级中断,从而实现一种对同级中断请求的特殊嵌套,而在全嵌套方式中,只有当更高级的中断到时,才会进行嵌套。 ②优先级自动循环方式一般在系统中多个中断源优先级相等的场合。在这种方式下,优先级队列是在变化的,一个设备受到中断服务以后,它的优先级自动降为最低。 ③仅仅禁止同级中断嵌套,开放高级中断和低级中断④两步:1步设置OCW 3 , 设置成特殊屏蔽方式,2步设置OCW 1 屏蔽某级中断。 3、8259有几种中断结束方式?应用场合如何? 1.中断自动结束方式,不需要设置中断结束命令,在单片系统中且不会出现中断嵌套时用。 2.一般中断结束方式,在全嵌套方式下用。 3.特殊中断结束方式,在任何场合均可使用。 4、8259的ICW 2 与中断类型码有什么关系?说明类型码为30H,36H,38H的异同。 ①高五位相同,低三位不同(中断类型码的低三位和引脚的编码有关,ICW2的低三位无意义) ②30H,36H高五位相同,ICW 2=30H, 30H为8259A IR 对应的中断类型码, 36H为8259A IR 对应的中断类型码。 38H ICW 2=38H 38H为8259A IR 对应的中断类型码

第11章:1112 8088的中断响应过程

第11章:11.1.2 8088的中断响应过程 NMI N 软件中断INTR TF=1中断响应周期读中断向量号 下条指令 现行指令 IF =1 N N N N Y Y Y Y Y 查询中断的顺序,决定了各种中断源的优先权 软件中断 除法错中断 指令中断 溢出中断 非屏蔽中断可屏蔽中断 单步中断 高低

第11章:11.1.2 8088的中断响应过程(续) Y 还有NMI TEMP =1 标志寄存器入栈 TEMP =TF ,IF =TF =0 CS :IP 入栈获取中断向量执行服务程序弹出CS :IP 弹出标志寄存器返回被中断程序 (1)(2) (3)(4) (5)N N Y (6) 8088各种中断源的优先权,实际上是指被识别出来的先后 多种中断同时请求时,最先响应的则可能是 单步中断或NMI 中断

第11章:11.1.3 8088的中断向量表 中断向量:中断服务程序的入口地址(首地址) 逻辑地址含有段地址CS和偏移地址IP(32位) 每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节 8088微处理器从物理地址000H开始,依次安排各个中断向量,向量号也从0开始 256个中断占用1KB区域,就形成中断向量表 向量号为N的中断向量的物理地址=N×4

第11章:11.2 内部中断服务程序 编写内部中断服务程序与编写子程序类似利用过程定义伪指令PROC/ENDP 第1条指令通常为开中断指令STI 最后用中断返回指令IRET 通常采用寄存器传递参数 主程序需要调用中断服务程序 调用前,需要设置中断向量 设置必要的入口参数 利用INT n指令调用中断服务程序 处理出口参数

微机原理复习题

一、单项选择题 1.在DMA方式下,将外设的数据传送到内存的路径为() A.外设→总线→CPU→内存 B.外设→总线→DMAC→内存 C.外设→数据总线→内存 D.外设→DMAC→内存 2.在中断方式下,外设数据输入到内存的路径是()。 A. 外设→数据总线→内存 B. 外设→数据总线→CPU→内存 C. 外设→CPU→DMAC→内存 D. 外设→I/O接口→CPU→内存 3. 一中断程序入口地址填写在向量表的0080H-0083H的存储单元中,则该中断对应的中断类型号() A.1FH B.20H C.21H D.22H 4.四片8259级联时可提供的中断请求总数为()。 A.29个 B.30个 C.31个 D.32个 5. 在串行异步数据传输时,如果格式规定为8位数据位、1位奇偶校验位、1位停止位则一 组异步数据总共有多少位() A. 8 B. 9 C. 10 D. 11 9. I/O接口电路中必不可少的逻辑部件是() A.数据缓冲器、端口地址译码器、中断控制逻辑 B.数据缓冲器、控制寄存器、状态寄存器 C.数据缓冲器、端口地址译码器、读/写控制逻辑 D.数据缓冲器、端口地址译码器、控制寄存器 1. 一片中断控制器8259A 能管理( ) 级硬件中断。 A.10 B.8 C.64 D.2 3. DMA在()接管总线的控制权。 A.申请阶段B响应阶段 C.数据传送阶段 D.结束阶段 5. DMA控制器8237A-5的独立寄存器是() A.工作方式寄存器、命令寄存器、基地址寄存器、当前地址寄存器 B.屏蔽寄存器、状态寄存器、基字节寄存器,当前字节寄存器 C.工作方式寄存器、命令寄存器、屏蔽寄存器、状态寄存器 D.基字节寄存器,当前字节寄存器、基地址寄存器、当前地址寄存器

定时器中断c语言程序

定时器中断c语言解析interrupt x using y interrupt 表示中断优先级,using表示所用工作寄存器组。 interrupt x using y 跟在interrupt 后面的xx 值得是中断号,就是说这个函数对应第几个中断端口,一般在51中 0 外部中断0 1 定时器0 2 外部中断1 3 定时器1 4 串行中断 其它的根据相应得单片机有自己的含义,实际上c在编译的时候就是把你这个函数的入口地址放到这个对应中断的跳转地址 using y 这个y是说这个中断函数使用的那个寄存器组就是51里面一般有4个r0 -- r7寄存器,如果你的终端函数和别的程序用的不是同一个寄存器组则进入中断的时候就不会将寄存器组压入堆栈返回时也不会弹出来节省代码和时间 外部中断INT0 void intsvr0(void) interrupt 0 using 1 定时/计数器T0 void timer0(void) interrupt 1 using 1 外部中断INT1 void intsvr1(void) interrupt 2 using 1 定时/计数器T1 void timer1(void) interrupt 3 using 1 串口中断 void serial0(void) interrupt4 using 1 单片机的C语言 HNBCC培训 电话:137******** 一,中断的概念 中断:当计算机执行正常程序时,系统中出现某些急需处理的异常情况和特殊请求. 中断的执行:当CPU正在执行某一程序时,若有中断响应,则CPU转而执行中断服务程序,当中断服务程序执行完毕后,CPU自动返回原来的程序继续执行. 中断服务程序的语句写法与函数的写法完全相同,所以,中断服务程序也是函数,只在函数头部有不同(后续). 中断服务程序的执行与函数的执行不同:函数的执行是有固定位置的,是通过函数的调用来完成的;而中断服务程序的执行是不固定位置的,只要有中断响应,在一定条件下都会去响应中断,即执行中断服务程序. 二,中断源 中断源:任何引起计算机中断的事件,一般一台机器允许有许多个中断源. 8051系列单片机至少有5个可能的中断(8052有6个,其它系列成员最多可达15个).下面以5个中断源为例.

中断响应和函数调用的区别剖析

在《微机原理》和《计算机组成》等课程[1-4]教学中(本文以MCS-51单片机为例),中断过程既是教学难点又是教学重点,它与主程序调用子程序过程有一定相似性,但又有很大区别,调用子程序过程相对比较容易掌握,通过把两过程结合起来,采用比较教学方法,能收到了很好的教学效果。 1、两过程定义与作用 子程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分支(判断)、循环、子程序和查表等5种。 子程序是一组可以公用的指令序列,只要给出子程序的入口地址就能从主程序转入子程序。子程序在功能上具有相对的独立性,在执行主程序的过程中往往被多次调用,甚至被不同的程序所调用。一般微机首先执行主程序,碰到调用指令就转去执行子程序,子程序执行完后,返回指令就返回主程序断点(即调用指令的下一条指令),继续执行没有处理完的主程序,这一过程叫做(主程序)调用子程序过程。 子程序结构可简化程序,防止重复书写错误,并可节省内存空间。计算机中经常把常用的各种通用的程序段编成子程序,提供给用户使用。用户在自己编写的程序中,只要会调用这些子程序,就可大大简化用户编程的困难。 中断是计算机中央处理单元CPU与外设I/O交换数据的一种方式,除此方式外,还有无条件、条件(查询)、存贮器直接存取DMA和I/O通道等四种方式。由于无条件不可靠,条件效率低,DMA和I/O通道两方式硬件复杂,而中断方式CPU效率高,因此一般大多采用中断方式。 中断概念是当计算机正在执行某一(主)程序时,收到一中断请求,如果中断响应条件成立,计算机就把正在执行的程序暂停一下,去响应处理这一请求,执行中断服务程序,处理完服务程序后,中断返回指令使计算机返回原来还没有执行完的程序断点处继续执行,这一过程称为中断过程。有了中断,计算机才能具有并行处理,实时处理和故障处理等重要功能。

什么是中断

第五章 1、什么是中断? 答:所谓中断,是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去,服务完毕,再返回去执行波暂时中断的程序。 2、可屏蔽中断处理的一般过程是什么? 答:可屏蔽中断处理的一般过程为: ①外设径8259A提出中断请求,如果IF=1且无DMA请求,LOCK无效,则8259A的中断请求信号INTR才能送到CPU。 ②CPU发INTA信号响应,在第二个INTA周期中,外部中断控制器送中断类型号。 ③STACK OLDFLAG→ ④STACK OLDCS→ ⑤获取CS并赋值 ⑥①STACK LDTP→ ⑦给IP赋值 ⑧执行CS、IP处的外设中断服务程序 ⑨中断返回,执行IRET中断返回指令 ·OLDTP退线 ·OLDCS退线 ·OLDFLAG退线 ⑩继续执行当前程序中的下条指令 其中②~⑦步为中断响应及处理过程。 4、什么是中断嵌套? 答:中断嵌套是指当CPU正在处理某个中断源即正在执行中断服务程序时,会出现优先级更高的中断源申请中断,为了使更急的中断源及时得到服务,需要暂时中断(挂起)当前正在执行的级别较低的中断服务程序,去处理更高级别的

中断源,待执行完毕后再返回来执行波中断3的中断服务程序。但中断级别桢或更低的中断源不能中断级别高的中断服务,这就是中断嵌套,并且称这种中断嵌套方式为完全嵌套方式。 5、什么是中断向量,它是如何装入中断向量表的? 答:中断向量是中断服务程序的入口地址,它包括中断服务程序的段其址CS和偏移地址IP。 中断向量的装入分系统自动装入和用户自动装入两种。 其中系统配置和使用的中断所对应的中断向量由系统软件负责装入。若系统中未配置系统软件就要由用户自行装入。这时可用MOV指令来装入中断向量。6、什么是中断型号?它的作用是什么? 答:中断类型号是系统分配给每个中断源的代号。 系统中的外部中断与内部中断,硬中断与软中断一律统一编号,共256个号,中断类型号的作用是在采用向量中断方式的中断交流中,CPU只有通过它才可以找到中断服务程序的入口地址,实现程序的转移。 7、不可屏蔽中断与可屏蔽中断各有何特点?其用途如何? 答:不可屏蔽中断NMI的特点是不能被CPU用指令禁止,这种中断一旦出现CPU就会立即响应。它主要用于紧急情况的故障处理,并由系统使用,一般用户不能使用。 可屏蔽中断INTR的特点是它可以通过CPU用CLI来禁止,也可用指令STI 来允许,只有在INTR被允许时,CPU才发中断响应信号INTA,这时中断源一定要向CPU提供中断类型号,以使找到中断服务入口程序。 9、所谓DOS系统功能调用是指哪一个软中断?指出一些常用设备管理与文件管 理DOS功能调用? 答:DOS系统功能调用是指INT21H 一些常用的设备管理与文件管理DOS功调如: INT 28H等待状态处理程序

微机原理与接口技术(北邮阶段作业4)

一、单项选择题(共20道小题,共100.0分) 1.8086的中断优先级由低到高的顺序为______ A.单步中断、可屏蔽中断、不可屏蔽中断、内部中断 B.可屏蔽中断、不可屏蔽中断、单步中断、内部中断 C.内步中断、单部中断、不可屏蔽中断、可屏蔽中断 D.内部中断、单步中断、可屏蔽中断、不可屏蔽中断 知识点: 单元5、6、7习题 学生答 案: [A;] 得分: [5] 试题分 值: 5.0 提示: 2. 3.占有CPU时间最小的数据传送方式是______ A.同步传送 B.查询传送 C.中断传送 D.DMA传送 知识点: 单元5、6、7习题 学生答 案: [D;] 得分: [5] 试题分 值: 5.0 提示: 4. 5.微型计算机输入/输出的控制方式有4种,其中以______控制的输入/输出 是一种最主要的控制方式,因为其实时性强,效率高 A.无条件传送 B.程序查询 C.中断 D.DMA 知识点: 单元5、6、7习题 学生答 案: [C;] 得分: [5] 试题分 5.0

提示: 6. 7.8086CPU寻址I/O端口最多使用______条地址线。 A.8 B.10 C.16 D.20 知识点: 单元5、6、7习题 学生答 案: [C;] 得分: [5] 试题分 值: 5.0 提示: 8. 9.若8086处理器改为统一编址方式,可使用______条地址线来寻址端口 A.8 B.10 C.16 D.20 知识点: 单元5、6、7习题 学生答 案: [D;] 得分: [5] 试题分 值: 5.0 提示: 10. 11.8086/8088的中断是向量中断,其中断服务程序的入口地址是由______ 提供 A.外设中断源 B.CPU的中断逻辑电路 C.从中断控制器读中断类型号左移两位 D.由中断型号指向的中断向量表中读出 知识点: 单元5、6、7习题 学生答 案: [D;]

MSP430有哪些可屏蔽中断

MSP430有哪些可屏蔽中断 中断很大程度上体现了一款单片机的性能,从这一点将MSP430 在中断方 面做得很不错,主要是提供了非常丰富的中断源,基本的有IO 中断,定时器 中断和一些接口中断(SPI,UART,I2C)等等。 现在我就谈谈关于MSP430 中断的一些特性,主要是在项目经历中感觉比较 有用的问题,跟大家分享下。 第一,MSP430 中断的优先级。 MSP430 支持中断优先级,但是优先级的高低怎么获知呢?它的用手手册上有 个很有意思的说法,我原文引用过来“The nearer a module is to the CPU/NMIRS, the higher the priority”,翻译过来就是说离CPU/NMIRS 越近,优先级就越高。那我们怎么知道那个模块离CPU 近啊,看datasheet 给的框图?总觉得这不可能 让一个做电子的人放心,比如框图在中距CPU 一样进,那怎么区分呢?所以我 们有另外一个更可靠的办法,IAR 为每一款型号的430 都提供了对应的头问题, 只靠看中断向量地址就可以知道了。430 的中断向量表从地址值0xFFC0 开始 至0XFFFF 结束,一共有32 个表项(每个中断向量对应2byte),0XFFCO 对应 的中断向量的优先级是最顶的,0XFFFE 对应的中断向量的优先级是最高的, 也就是从0xFFCO 开始至0xFFFF,32 个中断优先级由低至高。这样就很容易弄 清楚各中断的优先级了。 第二,MSP430 中断的响应过程。 首先,当然是中断发生对应的标志为置1。这个时候的过程我详述下,其实 是翻译的用户手册但是还是了解下好。 1. CPU 会执行完当期的指令。 2. 指向下一条指令的PC 被压栈。

uCOSii中断处理过程详解

一. UCOSII的中断过程简介 系统接收到中断请求后,如果CPU处于开中断状态,系统就会中止正在运行的当前任务,而按中断向量的指向去运行中断服务子程序,当中断服务子程序运行完成后,系统会根据具体情况返回到被中止的任务继续运行,或转向另一个中断优先级别更高的就绪任务。 由于UCOS II是可剥夺型的内核,所以中断服务程序结束后,系统会根据实际情况进行一次任务调度,如果有优先级更高的任务,就去执行优先级更高的任务,而不一定要返回被中断了的任务。 二.UCOSII的中断过程的示意图 三.具体中断过程 1.中断到来,如果被CPU识别,CPU将查中断向量表,根据中断向量表,获得中断服务子程序的入口地址。 2.将CPU寄存器的内容压入当前任务的任务堆栈中(依处理器的而定,也可能压入被压入被中断了的任务堆栈中。

3.通知操作系统将进入中断服务子程序。即:调用OSIntEnter()或OSIntNesting直接 加1。 4.If(OSIntNesting==1){OSTCBCur->OSTCBStrPtr=SP;} //如果是第一层中断,则将堆栈指针保存到被中断任务的任务控制块中 5.清中断源,否则在开中断后,这类中断将反复的打入,导致系统崩贵 6.执行用户ISR 7.中断服务完成后,调用OSIntExit().如果没有高优先级的任务被中断服务子程序激活而进入就绪态,那么就执行被中断了的任务,且只占用很短的时间. 8.恢复所有CPU寄存器的值. 9.执行中断返回指令.

四.相关代码 与编译器相关的数据类型: typedef unsigned char BOOLEAN; typedef unsigned char INT8U; typedef unsigned int OS_STK; //堆栈入口宽度为16 位(一) void OSIntEnter (void)的理解 uCOS_II.H中定义:

微机原理67章答案

第6章作业 问答题 3 若8086系统采用单片8259A,其中一个中断源的中断类型码为46H,问该中断源应与8259A 的哪一个IR输入端连接?其中断矢量地址是多少?若其中断服务子程序的首地址为16A0:23D4H,则向量表对应的4个单元的内容是什么? 该中断源应与8259A的IR6相连.其中断矢量地址是0000:0118H,矢量区对应的4个单元内容依次是:D4H,23H,A0H,16H。 4,怎样用8259A的屏蔽命令字来禁止IR4和IR5引脚上的请求?又怎样撤销这一禁止命令?设8259A的端口地址为20H-21H,写出有关指令。 使OCW1的D4和D5位为1,写到8259A的奇地址就可禁止IR4和IR5引脚上的请求。撤销 禁令只需写入D4和D5位为0的OCW1命令。有关指令如下: IN AL,21H OR AL,30H OUT 21H,AL ;禁止IR4,IR5的请求 IN AL,21H AND AL,0CFH OUT 21H,AL ;撤销对IR4,IR5的禁令用OR和AND命令是为了保持OCW1的其他6位不变。IMR(中断屏蔽寄存器)内容可读写。 补充1、什么叫中断?简述中断的处理过程。 所谓中断是指CPU在正常运行程序的过程中,CPU内部或外部出现某些事件、异常需要及时处理,导致CPU暂停正在执行的程序,转去执行处理该事件或异常对应的程序,并在处理完毕返回原程序处继续执行被暂停的程序,这一过程称为中断及中断处理。 中断处理过程包括:中断请求、中断响应、中断处理和中断返回几个步骤。 补充2、8086cpu有哪几种中断?简述8086cpu对可屏蔽中断的响应过程。 中断源可分为两大类:一类是外设接口的中断请求,由CPU的引脚引入,中断源来自CPU 外部,故称外部中断(又称硬件中断);另一类在执行指令时引起,来自CPU的内部,故称内部中断(又称软件中断)。 外部中断分为NMI(非屏蔽中断)和INTR(可屏蔽中断) 内部中断分为除法错误中断、溢出中断INTO、单步执行中断(单步中断)、INT n中断指令引起的中断、断点中断 在8086/8088系统中,CPU对可屏蔽中断的响应处理要经过以下几步: (1) 执行2个中断响应总线周期,取得中断类型码。 当CPU响应INTR引脚上的中断请求后,在2个总线周期的T2~T4状态分别输出2个负脉冲,在第2个总线周期的T2~T4状态内,CPU在低8位数据总线上获得8259A送来的中 断类型码 (2) 执行一个总线写周期将标志寄存器FLAG的值压栈。 (3) 将TF送入TEMP。 (4) 设置IF=0,TF=0,即关中断和禁止单步中断。

中断概述和中断处理过程

第23课中断概述可屏蔽中断处理过程 教学目的:了解中断的相关概念,掌握可屏蔽中断的处理过程。 教学重点:中断响应过程、中断向量和中断服务过程。 教学难点:中断向量。 授课内容: 一、中断概念 1.中断源 2.中断响应 3.中断向量表 4.中断优先级 5.中断屏蔽 二、中断分类 8086/8088有一个强有力的中断系统,可以处理256种不同的中断,256种中断可以分为两大类:外部中断和内部中断。 1.外部中断 也称为硬件中断,是由外部的硬件产生的。分成不可屏蔽中断请求和可屏蔽中断请求。 2.内部中断 又称为软件中断。通常有三种情况引起:由中断指令INT引起的中断;由CPU 的某些运算错误引起的中断;由调试程序debug设置的中断。 三、CPU响应中断过程 可屏蔽中断处理的过程一般分成几步:中断请求;中断响应;保护现场;转入执行中断服务子程序;恢复现场和中断返回。 CPU响应中断要有三个条件: 外设提出中断申请 本中断位未被屏蔽 中断允许 CPU在响应外部中断,并转入相应中断服务子程序的过程中,自动依次做以

下工作: (1)从数据总线上读取中断类型号,将其存入内部暂存器。 (2)将标志寄存器PSW的值入栈。 (3)将PSW中的中断允许标志IF和单步标志TF清0,以屏蔽外部其它中断请求,及避免CPU以单步方式执行中断处理子程序。 (4)保护断点。 (5)根据中断类型号到中断向量表中找到中断向量,转入相应中断服务子程序。 (6)中断处理程序结束以后,从堆栈中依次弹出IP、CS和PSW,然后返回主程序断点处,继续执行原来的程序。 四、中断向量表 寻找中断源可以用查询中断及矢量中断两种方法。 1.中断向量表 又称中断服务程序入口地址表。8086允许处理256种类型中断,对应类型号为0~FFH。 2.中断向量的设置 供用户使用的中断类型号,它可由用户定义为软中断,由INT n指令引用;也可通过1NTR端直接接入,或通过中断控制器8259A引入可屏蔽硬件中断。有两种方法可将中断服务程序的入口地址置入中断类型号n所对应的中断向量表中。一种方法用指令来设置,另一种方法利用DOS功能调用来设置。 设置中断向量:预置AL=中断类型号 DS:DX=中断服务程序入口地址 AH=25H 执行: INT 21H 取中断向量:预置AL=中断类型号 AH=35H 执行: INT 21H 返回: ES:BX=中断服务程序人口地址 3.中断类型号的获取

msp430中断(不可屏蔽中断NMI)

中断系统 中断的优先级是固定的。中断优先级的是以模块的在链接所处的位置决定的。越靠近CPU/NMIRS,模块的优先级越高。中断优先级决定了,当系统有多个中断等待处理时,先处理哪一个中断。 有三种中断类型: 系统中断 不可屏蔽中断 可屏蔽中断 不可屏蔽中断(NMI) 不可屏蔽中断不能被总中断使能位(GIE)所屏蔽,而由单独的中断使能位(NMIIE, ACCVIE,OFIE)来控制的。当接收到不可屏蔽中断中断时,所有的不可屏蔽中断使能位会被自动复位。程序从不可屏蔽中断的中断向量0FFFCH存储的地址开始运行。用户软件必须设置所需的不可屏蔽的中断使能位,以便不可屏蔽中断能够再次响应。 不可屏蔽的中断源有以下三种: 1. 当配置为NMI模式时,RST/NMI引脚的一个边沿 2. 振荡器失效 3. 错误使用FLASH RST/NMI引脚 上电时,RST/NMI引脚配置为复位模式。在看门狗控制寄存器WDTCTL中选择RST/NMI引脚的功能。如果RST/NMI引脚被设置为复位功能,RST/NMI引脚处于低电平时CPU将一直保持复位状态。当转为高电平时,CPU从存储在复位向量OFFFEH中的地址开始运行,RSTIFG将被置位。 如果RST/NMI引脚被用户软件配置为不可屏蔽中断时,如果NMIIE位被置位时,由WDTNMIES选择的信号边沿到来产生NMI中断。RST/NMI的标志位NMIIFG将会被置1。 注释1:RST/NMI保持低电平 在配置为NMI模式时,产生一个NMI事件的信号不会拉低RST/NMI引脚的电平。如果其他的信号源产生一个PUC时,NMI信号是低电平,设备将处于复位状态,因为一个PUC 信号使RST/NMI引脚变为复位模式。 注释2:修改WDTNMIES 当选择了NMI模式,WDTNMIES位改变了,NMI是否产生将依据于实际的RST/NMI 引脚的电平。在系统被设置为NMI模式前,如果NMI的边沿选择位改变早于选择NMI模式,不产生NMI。 FLASH的存取冲突 当FLASH存取冲突发生时,ACCVIFG位将会被置1。置ACCVIE为1,在发生FLASH 存取冲突时,就产生一个NMI中断。NMI中断服务程序可以检查ACCVIFG位来判断NMI 中断是否由FLASH存取冲突引起。 振荡器错误 振荡器错误信号对晶振失效的情形发出警告。置位OFIE将能够使振荡器发生错误时产生一个NMI中断。NMI中断服务程序可以检查OFIF位来判断NMI中断是否由振荡器引起。 PUC信号可能触发一个振荡器错误。因为PUC信号使系统由LFXT1模式转变为LF 模式,因而关断HF模式。PUC信号也关闭振荡器XT2。

8051单片机的中断响应过程解析

8051单片机的中断响应过程解析 8051的CPU在每个机器周期期间,顺序采样每个中断源,CPU在下一个机器周期按优先级顺序查询中断标志,如查询到某个中断标志为1,将在下一个机器周期期间按优先级来进行中断处理。在下列任一种情况存在时,中断申请将被封锁。 1、CPU正在执一个同级或高级的中断服务程序 2、当前机器周期不是当前指令周期的最后一个机器周期,即要保证把当前指令执行完。 CPU响应中断,由硬件自动将相应的中断矢量地址装入程序程序计数器PC,转入该中断服务程序进行处理。 对于有些中断源,CPU在响应中断后会自动清除中断标志,如定时器溢出标志TF0,TF1,以及部中断标志IE0,IE1。 而有些中断标志,不会自动清除,只能由用户用户软件清除,如串行口接收发送中断标志RI,T1。CPU执行中断服务程序之前,自动将程序计数器PC内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向该中断矢量地址单元中,以执行中断服务程序,中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作,一方面告诉中断系统中断服务程序以执行完毕,另一方面把原来压入堆栈保护的断电地址从栈顶弹出,装入程序计数器PC,使程序返回被中断的程序断点处,以便继续执行。 外部中断响应时间外部中断INT0和INT1的电平在每个机器周期,经反向后锁存到IE0和IE1的标志位,CPU在下一个机器周期才会查询到新置入的IE0和IE1,这时如果满足响应条件,CPU响应中断时,要用二个机器周期执行一条硬件长调用指令“LCALL”。所以,从产生外部中断到开始执行中断程序至少需要三个完整的机器周期。如果在中断申请时,CPU正在长指令,如乘法和除法指令等四周期指令,则额外等待时间增加三个周期;若正在执行“RETI”指令或访问IE,IP的指令,则额外等待时间又增加两个周期。综上估计,在单一中断系统里,外部中断响应时间约在3-8个机器周期之间。 下面我们仍以打印机为例来说明外中断源的使用方法。硬件连接和查询方式基本一致,

相关文档
最新文档