中断服务函数的过程_20160206

来源:互联网 发布:知乎 机械 理论 编辑:程序博客网 时间:2024/05/02 12:25
  • 中断对于操作系统来说非常重要,就好像机器中的齿轮,驱动各部件的动作。所以,许多人把操作系统称为是由“中断驱动”的。那么,究竟什么是中断呢?我们有如下定义:所谓中断是指CPU对系统发生的某个事件做出的一种反应,即CPU暂停正在执行的程序,保留现场后自动转去执行相应的处理程序,处理完该事件后再返回断点继续执行被“打断”的程序。引起中断的事件成为中断源。中断源向CPU提出进行处理的请求称为中断请求。发生中断时,被打断的暂停点称为断点。
  • 中断处理一般分为中断响应和中断处理两个步骤。中断响应由硬件实施,中断处理主要由软件实施。
  • 一般说来,中断响应顺序执行下述三步动作:
  • 〈1〉中止当前程序的执行;
    〈2〉保存原程序的断点信息;
    〈3〉转到相应的处理程序。
  • 中断响应后,就由软件(中断处理程序)进行相应处理。中断处理过程大致分为四个阶段:保存被中断程序的现场,分析中断原因,转入相应处理程序进行处理,恢复被中断程序现场(即中断返回)。下面对软件执行的中断处理过程做进一步介绍。
C51中断处理过程C51编译器支持在C源程序中直接开发中断过程,因此减轻了使用汇编语言的繁琐工作,提高了开发效率。中断服务函数的完整语法如下:void 函数名(void)[模式][再入]interrupt n [using r]其中n(031)代表中断号。C51编译器允许32个中断,具体使用哪个中断由80C51系列的芯片决定。r(03)代表第r组寄存器。在调用中断函数时,要求中断过程调用的函数所使用的寄存器组必须与其相同。"再入"用于说明中断处理函数有无"再入"能力。C51编译器及其对C语言的扩充允许编程者对中断所有方面的控制和寄存器组的使用。这种支持能使编程者创建高效的中断服务程序,用户只须在C语言下关心中断和必要的寄存器组切换操作。

这里写图片描述

0 0
原创粉丝点击